當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]引言 數(shù)控技術(shù)是發(fā)展尖端工業(yè)的使能技術(shù)和基礎(chǔ)裝備,數(shù)控系統(tǒng)作為數(shù)控車床的大腦,其性能直接影響甚至決定著機床的整體性能。數(shù)控機床既是高新技術(shù)專業(yè)不可缺少的基礎(chǔ)裝備,又是傳統(tǒng)產(chǎn)業(yè)更新?lián)Q代的重要手段。隨著半導(dǎo)

引言

數(shù)控技術(shù)是發(fā)展尖端工業(yè)的使能技術(shù)和基礎(chǔ)裝備,數(shù)控系統(tǒng)作為數(shù)控車床的大腦,其性能直接影響甚至決定著機床的整體性能。數(shù)控機床既是高新技術(shù)專業(yè)不可缺少的基礎(chǔ)裝備,又是傳統(tǒng)產(chǎn)業(yè)更新?lián)Q代的重要手段。隨著半導(dǎo)體技術(shù)的飛速發(fā)展,數(shù)控系統(tǒng)逐漸朝嵌入式方向發(fā)展。嵌人式系統(tǒng)是近年發(fā)展最快的技術(shù)之一,它是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ)、軟硬件可裁減,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專用計算機系統(tǒng)。目前市面上主流的經(jīng)濟型數(shù)控系統(tǒng)如廣州數(shù)控的GSK980TDb和北京凱恩帝K90Ti等都是使用了ARM處理器構(gòu)建的嵌入式數(shù)控系統(tǒng)。

本數(shù)控系統(tǒng)硬件平臺分為兩大組成部分:ARM子系統(tǒng)和FPGA子系統(tǒng),采用主從式的兩級插補結(jié)構(gòu)。ARM子系統(tǒng)采用三星S3C24I0處理器,主要用于粗插補計算,以及鍵盤、顯示和D/A轉(zhuǎn)換等管理工作。FPGA子系統(tǒng)采用Altera公司的ACEX系列芯片,主要負(fù)責(zé)系統(tǒng)的精插補脈沖輸出、編碼器脈沖計數(shù)以及I/O控制等工作。

本數(shù)控系統(tǒng)軟件部分采用Xenomai實時化方案改造標(biāo)準(zhǔn)Linux內(nèi)核,構(gòu)建基于Xenomai的實時嵌入式操作系統(tǒng)。Xenomai/Linux系統(tǒng)為用戶程序提供了內(nèi)核空間和用戶空間兩種模式,前者通過系統(tǒng)調(diào)用接口實現(xiàn),后者通過實時內(nèi)核實現(xiàn)。用戶空間的執(zhí)行模式保證了系統(tǒng)的可靠性和良好的軟實時性,內(nèi)核空間程序則能提供優(yōu)秀的硬實時性。

1 系統(tǒng)硬件模塊設(shè)計

數(shù)控系統(tǒng)開發(fā)的關(guān)鍵是軟件部分,為縮短系統(tǒng)開發(fā)周期,本系統(tǒng)盡量采用模塊化設(shè)計,積極利用市場現(xiàn)有的成熟技術(shù)。該數(shù)控系統(tǒng)按功能模塊構(gòu)架設(shè)計,大致劃分為如下幾個模塊:

控制模塊:控制模塊的主處理器采用市面上流行的三星S3C2410處理器,片上運行嵌人式Linux+Xenomai操作系統(tǒng),負(fù)責(zé)信息存儲、LCD顯示、串口傳輸、USB接口的處理,實現(xiàn)譯碼、文件系統(tǒng)、圖形顯示和PLC等功能??刂颇K采用市面流行的MINI2440開發(fā)板實現(xiàn)控制功能,該開發(fā)小板集成了三星S3C2440微處理器、并使用兩片外接的SDRAM芯片,兩片共64Mb并連在一起形成32位的數(shù)據(jù)總線寬度;配備2Mb的NOR FLASH和128Mb的NAND FLASH,支持兩種FLASH啟動,有利于開發(fā)階段的調(diào)試和系統(tǒng)文件的燒寫。

鍵盤模塊:采用AVR單片機,負(fù)責(zé)鍵盤掃描、LED燈點亮等信號處理,通過串行口與ARM進行通信。

FPGA模塊:該模塊采用AITERA的FPGA控制。負(fù)責(zé)輸入輸出接口控制、編碼器反饋和機床I/O信號處理。FPGA模塊與鍵盤模塊一起集成設(shè)計在核心板上,采用4層板設(shè)計,留出各個JTAG接口,利于集中調(diào)試和燒寫。

電源及接口模塊:該模塊主要用于核心板和控制板的供電及I/O接口處理。該模塊設(shè)置在I/O接口板上,該板同樣采用4層板設(shè)計,配置各種外部連接和調(diào)試插頭。

各模塊組成的數(shù)控系統(tǒng)硬件結(jié)構(gòu)如下圖所示:

點擊圖片查看大圖

圖1 系統(tǒng)硬件結(jié)構(gòu)

2 系統(tǒng)軟件模塊設(shè)計

2.1數(shù)控系統(tǒng)軟件平臺的選擇

數(shù)控系統(tǒng)本身是一個復(fù)雜的多任務(wù)并發(fā)的實時應(yīng)用系統(tǒng),目前市面上比較流行的實時操作系統(tǒng)有VxWorks, QNX等,這些系統(tǒng)實時性好,但開放性差并且價格昂貴;開源但不免費的uC/OS-II是由美國人Jean J.Labrosse先生所編寫的實時嵌入式操作系統(tǒng)內(nèi)核,實時性好并且相當(dāng)精簡,但由于其僅是操作系統(tǒng)內(nèi)核,針對其內(nèi)核要進行開發(fā)的內(nèi)容和項目比較多,影響開發(fā)進度;因此本系統(tǒng)選用開放性好、移植性強、免費并且開源的嵌人式Linux+Xenomai實時操作系統(tǒng)作為軟件平臺,該軟件平臺具有良好的用戶態(tài)實時性和優(yōu)秀的內(nèi)核態(tài)實時性,可分別用于實時性不高的軟實時任務(wù)和實時性要求很高的硬實時任務(wù)。

2.2 系統(tǒng)的軟件結(jié)構(gòu)

系統(tǒng)軟件部分的開發(fā)是關(guān)乎整個數(shù)控系統(tǒng)研發(fā)成敗的關(guān)鍵。數(shù)控系統(tǒng)具備的功能比較多,但其主要功能是解釋翻譯數(shù)控代碼,并按照代碼要求自動完成工件的加工。自動加工過程主要是完成刀具軌跡的控制,如加減速、插補、位置控制等;其次是一些邏輯控制,如冷卻液開關(guān)及限位控制等等;除具備主要功能外,數(shù)控系統(tǒng)應(yīng)該具備良好的人機界面等功能。如何合理的布置這些層次結(jié)構(gòu)及劃分模塊,對整個數(shù)控系統(tǒng)的開放性、后期可擴展性以及系統(tǒng)的性能都具有重要意義。結(jié)合選用的嵌入式Linux+Xenomai軟件平臺,綜合考慮數(shù)控系統(tǒng)的功能需求及多任務(wù)之間數(shù)據(jù)依賴等要求,我們把系統(tǒng)分兩層進行開發(fā):用戶層和內(nèi)核層,每層又劃分為若干模塊和子模塊,同層模塊相互配合共同完成該層任務(wù),用戶層與內(nèi)核層之間通過命名管道實現(xiàn)數(shù)據(jù)通信。

用戶層:主要提供系統(tǒng)的人機接口界面,人機接口界面內(nèi)包含有位置界面、程序界面、刀補界面、設(shè)置界面、參數(shù)界面和診斷界面。人機接口界面為用戶提供直觀的操作界面及各種加工信息、狀態(tài)參數(shù)和診斷參數(shù)等,等待接受用戶的操作要求,并將操作要求和數(shù)據(jù)處理后傳遞給內(nèi)核層。

內(nèi)核層:主要用于內(nèi)核控制、運算控制、輸人輸出控制,分算法模塊和FPGA模塊;算法模塊內(nèi)又分譯碼、預(yù)插補、插補、位置控制、加減速控制、PLC控制等子模塊。每個子模塊都是一個單獨的線程,子模塊之間通過消息隊列進行通信。內(nèi)核層中的算法模塊是整個系統(tǒng)的核心,它進行的都是實時性要求很高的插補、加減速、位置等控制任務(wù),實現(xiàn)毫米級甚至微秒級的間隔周期;決定著系統(tǒng)的整體性能。FPGA模塊用于直接控制硬件芯片,完成輸人輸出控制。算法模塊和FPGA模塊均設(shè)計為內(nèi)核模塊中,系統(tǒng)啟動時,直接加載到實時內(nèi)核中。


具體劃分如圖2所示:

點擊圖片查看大圖

圖2 系統(tǒng)軟件結(jié)構(gòu)和模塊劃分

3 系統(tǒng)軟件詳細(xì)設(shè)計

3.1 用戶層與內(nèi)核層的通信設(shè)計

用戶層與內(nèi)核層在嵌人式Linux系統(tǒng)中屬于兩個相對獨立的空間,兩個空間之間不能直接進行通信和數(shù)據(jù)交換。嵌入式Linux系統(tǒng)進行Xenomai實時化改造后,管道通信、消息隊列和共享內(nèi)存等全部保留。用戶層與內(nèi)核層通過管道通信進行連接,在內(nèi)核層建立管道后,在用戶層可以通過讀取設(shè)備文件進行管道讀寫。

內(nèi)核層創(chuàng)建及讀寫管道如下:

int rt_pipe_create (RT_ PIPE *pipe, const char*name, int minor,siu t poolsize); //創(chuàng)建管道

ssize t rt_pipe_receive (RT_PIPE *pipe, RT_PIPE_MSG **msgp, RTIME timeout);

//從管道接收一條信息;

ssize_t rt_pipe_send (RT_PIPE *pipe, RT_PIPE_MSG *msg, size_tsize, int mode);

//向管道發(fā)送一條信息

用戶層讀寫管道如下:

int PipeO=open("/dev/ntp0",O_RDWR);

//打開管道文件

int write(int handle, void *buf, int nbyte);

//向管道文件寫入數(shù)據(jù)

int read(int handle, void *buf, int nbyte);

//讀取管道文件數(shù)據(jù)

3.2 用戶層的設(shè)計

友好的人機界面是數(shù)控必須具備的功能,用戶層的主要任務(wù)就是提供人機交互界面。通過比較市面上流行的GUI開發(fā)軟件Qt/Embedded,MiniGUI, UC/GUI和Nano-X,結(jié)合Linux特性,本數(shù)控系統(tǒng)選用Qt/Embedded進行界面程序的開發(fā)。Qt/E是一個完整的基于framebuffer的GUI系統(tǒng),它用C++編寫,對用C語言程序有很好的兼容性,有著豐富的API函數(shù)庫和圖形處理功能,界面開發(fā)與圖形驅(qū)動分開,易于開發(fā)和移植,同時它也是開源軟件。

設(shè)計過程中,根據(jù)用戶層的劃分,把位置、刀補、程序等界面采用單獨的QWidget設(shè)計,每個界面都有自己的頭文件和cpp文件,所有界面公用一個數(shù)據(jù)結(jié)構(gòu),將各個界面通用的參數(shù)放到一起,設(shè)置一個主Mainwindow,用于系統(tǒng)初始化、界面切換、變量初始化以及加載系統(tǒng)信息等功能。主界面中對按鍵的處理也是相當(dāng)重要的,開發(fā)過程中充分利用Qt中的按鍵事件,設(shè)計過程中區(qū)分按下及釋放事件,并單獨編寫按鍵更新程序。具體如下:

void mainWindow::keyPressEvent(QKeyEvent *k}

void mainWindow::keyReleaseEvent(QKeyEvent *k)

void mainWindow::keyUpdateQ

用戶層設(shè)計過程中著重要考慮的就是各個界面之間的通信問題,各界面之間充分利用Qt特有的信號與槽的通信機制,在界面之間進行信號發(fā)送和槽函數(shù)調(diào)用。具體實現(xiàn)如下:

signals: void mySignal(); //信號

public slots: void mySlotQ; //槽函數(shù)

bool QObject::connect(const QObject*sender,

const char*signal, const QObject*receiver,

const char * member);//信號與槽函數(shù)的連接



程序中可以通過emit();函數(shù)發(fā)出signals,調(diào)用與信號連接的槽函數(shù)。

3.3 內(nèi)核層的設(shè)計

系統(tǒng)軟件設(shè)計的關(guān)鍵仍然是內(nèi)核層的設(shè)計,內(nèi)核層滿足硬實時任務(wù)的

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉