国产色av,短篇公交车高h肉辣全集目录,一个人在线观看免费的视频完整版,最近日本mv字幕免费观看视频

嵌入式芯片軟件設(shè)計(jì)探討

前言:本站為你精心整理了嵌入式芯片軟件設(shè)計(jì)探討范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。

嵌入式芯片軟件設(shè)計(jì)探討

摘要:隨著計(jì)算機(jī)和微電子技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)作為計(jì)算機(jī)應(yīng)用的一個(gè)重要領(lǐng)域,己深入到社會(huì)的方方面面。本文在ARM9硬件平臺(tái)的基礎(chǔ)上,加強(qiáng)操作系統(tǒng)的實(shí)時(shí)性,設(shè)計(jì)滿足數(shù)控磨床加工需求的軟件系統(tǒng)。

關(guān)鍵詞:嵌入式芯片軟件設(shè)計(jì)

一、嵌入式軟件開發(fā)方式

絕大多數(shù)的Linux或軟件開發(fā)都是以native方式進(jìn)行的,即本機(jī)開發(fā)、調(diào)試,本機(jī)的方式。這種方式通常不適合于嵌入式系統(tǒng)的軟件開發(fā),因?yàn)閷?duì)于嵌入式系統(tǒng)的開發(fā),沒(méi)有足資源在本機(jī)(即板子上系統(tǒng))運(yùn)行開發(fā)工具和調(diào)試工具。通常的嵌入式系統(tǒng)的軟件開發(fā)采用交叉編譯調(diào)試的方式。簡(jiǎn)單的說(shuō),交叉編譯就是在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上的可執(zhí)行代碼,如在x86的PC機(jī)上生成ARM平臺(tái)的可執(zhí)行代碼。

交叉編譯調(diào)試環(huán)境建立在宿主機(jī)(即一臺(tái)PC機(jī))上,對(duì)應(yīng)的開發(fā)板叫做目標(biāo)板。開發(fā)時(shí)使用宿主機(jī)上的交叉編譯、匯編及連接工具形成可執(zhí)行的二進(jìn)制代碼,(這種可執(zhí)行并不能在宿主機(jī)上執(zhí)行,而只能在目標(biāo)板上執(zhí)行。)然后把可執(zhí)行文件下載到目標(biāo)機(jī)上運(yùn)行。交叉開發(fā)技術(shù)己成為嵌入式軟件開發(fā)的主要方式。其開發(fā)步驟如下:在宿主機(jī)平臺(tái)上面編寫程序代碼;)使宿主機(jī)與目標(biāo)機(jī)連接,如使用交叉網(wǎng)線;使用交叉編譯器等工具編譯、連接應(yīng)用程序,生成可執(zhí)行代碼;目標(biāo)機(jī)掛載(mount)宿主機(jī)的方式(或?qū)⒖蓤?zhí)行代碼下載到目標(biāo)機(jī)):開發(fā)人員使用交叉調(diào)試器進(jìn)行調(diào)試;如果程序調(diào)試沒(méi)有發(fā)現(xiàn)異常,則轉(zhuǎn)至第(10)步;調(diào)試程序時(shí)發(fā)現(xiàn)錯(cuò)誤,則利用交叉調(diào)試器定位錯(cuò)誤;修改錯(cuò)誤代碼;重復(fù)(3)—(9)步;將目標(biāo)機(jī)程序固化至目標(biāo)機(jī)上。

二、數(shù)控系統(tǒng)軟件任務(wù)研究

控軟件的功能大致可分為兩種,一種是控制功能,另一種是管理功能。其中,管理功能包括信息的輸入功能、輸出輸入輸出的處理功能、顯示功能和診斷功能,控制功能包括譯碼功能、刀具補(bǔ)償功能、速度控制功能、和位置控制功能。

從任務(wù)的特征來(lái)看,與通用實(shí)時(shí)系統(tǒng)相比,數(shù)控系統(tǒng)有以下特點(diǎn):

數(shù)控系統(tǒng)是一個(gè)混合任務(wù)系統(tǒng),其任務(wù)按是否具有實(shí)時(shí)性要求和周期性要求可分為:實(shí)時(shí)周期性任務(wù)、實(shí)時(shí)突發(fā)性任務(wù)和非實(shí)時(shí)任務(wù)。實(shí)時(shí)周期性任務(wù)是指嚴(yán)格以定長(zhǎng)時(shí)間間隔定時(shí)觸發(fā),并且在規(guī)定的時(shí)間內(nèi)必須完成處理的任務(wù)。在數(shù)控系統(tǒng)中主要指加工過(guò)程中的插補(bǔ)控制、位置控制、數(shù)據(jù)采樣等需快速響應(yīng)的機(jī)床邏輯狀態(tài);實(shí)時(shí)突發(fā)性任務(wù)的發(fā)生是時(shí)間的隨機(jī)函數(shù),要求有很高的實(shí)時(shí)性,它包括機(jī)床緊急停止、系統(tǒng)故障中斷等;非實(shí)時(shí)性任務(wù)是指實(shí)時(shí)性要求很低的任務(wù),如:人機(jī)界面監(jiān)控,這類任務(wù)對(duì)于機(jī)床運(yùn)行和加工質(zhì)量的影響較小,其主要作用是讓操作者了解機(jī)床運(yùn)行狀況,增強(qiáng)機(jī)床的易操作性。

任務(wù)之間具有相關(guān)性。數(shù)控系統(tǒng)的實(shí)時(shí)任務(wù)除了自身的時(shí)限要求以外,任務(wù)之間通常也不是完全獨(dú)立的,一般存在時(shí)序約束、資源約束等約束關(guān)系。

系統(tǒng)在某一確定時(shí)刻的并發(fā)任務(wù)數(shù)量不多,與通用實(shí)時(shí)操作系統(tǒng)不同,數(shù)控系統(tǒng)的功能單一,因此調(diào)度程序幾乎不需要處理較大數(shù)量的并發(fā)任務(wù)。三、需求分析

數(shù)控控制系統(tǒng)通過(guò)良好的人機(jī)交互界面,完成顯示工作狀態(tài)、操作人員進(jìn)行參數(shù)設(shè)定等任務(wù),主要有以下幾個(gè)方面的綜合要求:

系統(tǒng)界面要求:圖形用戶界面可以實(shí)時(shí)顯示加工狀態(tài)、當(dāng)前時(shí)間、開機(jī)時(shí)間、加工時(shí)間、各個(gè)軸的坐標(biāo)位置,正在運(yùn)行的關(guān)鍵G代碼程序段等信息;

系統(tǒng)功能要求:操作人員可以在符合國(guó)際標(biāo)準(zhǔn)的條件下,無(wú)需了解嵌入式數(shù)控系統(tǒng)的專用編程代碼,直接使用符合國(guó)際標(biāo)準(zhǔn)的G代碼和M代碼,即可編制數(shù)控程序;

系統(tǒng)的運(yùn)行要求:操作人員可以根據(jù)需要點(diǎn)擊觸摸屏和鍵盤或機(jī)床面板按鈕,隨時(shí)監(jiān)控?cái)?shù)控系統(tǒng)的工作狀態(tài);還可以通過(guò)參數(shù)設(shè)置實(shí)現(xiàn)對(duì)電機(jī)的控制,如電機(jī)的啟停,正反轉(zhuǎn)等等;

異常處理要求:在正常生產(chǎn)條件下,每天運(yùn)行16小時(shí),數(shù)控系統(tǒng)的無(wú)故障率P(t)≥99%,這要求其MTBF值(數(shù)控系統(tǒng)的平均無(wú)故障時(shí)間,是衡量可靠性的重要指標(biāo))大于3萬(wàn)時(shí);在硬件不受損壞的情況下,系統(tǒng)軟件要有較強(qiáng)的容錯(cuò)能力。

未來(lái)可能提出的擴(kuò)展要求:如能實(shí)現(xiàn)遠(yuǎn)程的聯(lián)網(wǎng)控制、故障自診斷等、加工仿真、重要數(shù)據(jù)的備份、中英文界面切換等。

把上述提出的直觀需求轉(zhuǎn)化為具體的軟件功能需求,即為:

完成電機(jī)的啟動(dòng),制動(dòng)和換向控制,實(shí)現(xiàn)加工過(guò)程中的主軸、近給速度實(shí)時(shí)調(diào)整。實(shí)現(xiàn)六軸的高精度聯(lián)動(dòng),并通過(guò)插補(bǔ),完成工件的加工、磨削;在能夠滿足一定精度的前提下,實(shí)現(xiàn)自由曲線的粗插補(bǔ)和精插補(bǔ);

圖形用戶界面要求:實(shí)現(xiàn)參數(shù)的圖形菜單輸入,加工過(guò)程的仿真,并實(shí)時(shí)顯示加工圖形和各軸坐標(biāo)值,用戶可以通過(guò)觸摸屏和鍵盤進(jìn)行參數(shù)設(shè)置,實(shí)現(xiàn)對(duì)電機(jī)的控制;實(shí)現(xiàn)伺服信號(hào)、開關(guān)量信號(hào)、和輔助信號(hào)的宏指令控制,且符合G代碼和M代碼功能定義;

實(shí)現(xiàn)各功能電路的PLC控制,包括機(jī)床面板功能實(shí)現(xiàn)、主軸的起停、自動(dòng)潤(rùn)滑控制以及過(guò)載、超載、碰撞、掉電等緊急情況的處理;

為了方便用戶操作,還應(yīng)提供操作提示和幫助文檔,同時(shí),系統(tǒng)具有一定的抗干擾能力,即使受到干擾使系統(tǒng)控制失靈或程序運(yùn)行異常時(shí),也能夠從錯(cuò)誤或故障中恢復(fù),保證系統(tǒng)的正常工作。

從以上功能需求分析得知,一個(gè)功能滿足六軸數(shù)控磨削系統(tǒng)基本需要的系統(tǒng),必須包括以下幾個(gè)模塊:電機(jī)控制、圖形界面、譯碼、PLC、CAN通訊、硬件驅(qū)動(dòng)等。

四、模塊劃分

模塊劃分的一條原則是盡量降低軟件模塊間的禍合度,高禍合度的系統(tǒng)是很難維護(hù)的。一處的修改引起另一處甚至更多處的變動(dòng)。藕合度低的軟件可以很容易被重用、維護(hù)和擴(kuò)充。另一條原則是提高軟件的內(nèi)聚性,如果一個(gè)軟件的模塊只實(shí)現(xiàn)一個(gè)功能,那么該模塊具有高內(nèi)聚性。高內(nèi)聚性的軟件更容易維護(hù)和改進(jìn)。判斷一個(gè)模塊是否有高的內(nèi)聚性,是看能否用一個(gè)簡(jiǎn)單的句子描述它的功能。如果用了一段話或者需要使用類似“和”,“或”等連詞,則說(shuō)明需要將該模塊細(xì)化。只有高內(nèi)聚性的模塊才可能被重用。遵循上述原則,將系統(tǒng)軟件劃分為如圖1所示的子模塊。

嵌入式操作系統(tǒng)是嵌入式系統(tǒng)的靈魂,它的出現(xiàn)大大提高了嵌入式系統(tǒng)開發(fā)的效率,減少了系統(tǒng)開發(fā)的總工作量,而且提高了嵌入式應(yīng)用軟件的可移植性。

本系統(tǒng)采用了嵌入式操作系統(tǒng):Linux。系統(tǒng)各模塊在Linux的統(tǒng)一控制管理下有效的協(xié)調(diào)的工作。由圖1可知,本系統(tǒng)軟件主要由以下幾個(gè)功能模塊組成:

設(shè)備驅(qū)動(dòng)模塊、譯碼模塊、圖形界面模塊等。這些模塊在操作系統(tǒng)的管理調(diào)度下協(xié)調(diào)一致的運(yùn)行。

五、軟件初始化及總程序流程

本系統(tǒng)采用s3c2410(ARM9核)作為控制核心,在用戶的應(yīng)用程序之前,需要有一些專門的代碼完成對(duì)系統(tǒng)的初始化。由于這類代碼直接面對(duì)ARM9處理器內(nèi)核和硬件控制器,一般都使用匯編語(yǔ)言完成。系統(tǒng)上電或復(fù)位后,程序從位于地址0x0的ResetExceptionVector處開始執(zhí)行(這里放置Bootloader的第一條指令:bResetHandler),跳轉(zhuǎn)到標(biāo)號(hào)為ResetHandler處進(jìn)行第一階段的硬件初始化,主要內(nèi)容為:關(guān)看門狗定時(shí)器,關(guān)中斷,初始化PLL和時(shí)鐘,初始化存儲(chǔ)器系統(tǒng)。執(zhí)行完以上程序后,系統(tǒng)進(jìn)行堆棧和存儲(chǔ)器的初始化。系統(tǒng)堆棧初始化取決于用戶使用了哪些中斷,以及系統(tǒng)需要處理哪些錯(cuò)誤類型。一般情況下,管理者堆棧必須設(shè)置,如果使用了IRQ中斷,則IRQ堆棧也必須設(shè)置。如果系統(tǒng)使用了外設(shè),則需要設(shè)置相關(guān)的寄存器,以確定其刷新頻率、總線寬度等信息。然后是初始化有特殊要求的端口和設(shè)備,初始化應(yīng)用程序的運(yùn)行環(huán)境。最后是調(diào)用主應(yīng)用程序:

數(shù)控系統(tǒng)的應(yīng)用程序初始化流程如圖2所示:

系統(tǒng)初始化以后,程序的大體流程為:首先加載G/M代碼解釋器、初始化參數(shù),然后創(chuàng)建人機(jī)界面,G/M代碼經(jīng)解釋后,再調(diào)用響應(yīng)的例程完成I/O控制、插補(bǔ)、位置控制等,最后調(diào)用底層硬件的控制例程,完成對(duì)電機(jī)的控制。

參考文獻(xiàn)

[1]劉艷霞,李淑芬.基于ARM的嵌入式數(shù)控系統(tǒng)[J].微計(jì)算機(jī)信息.2006,22

[2]武漢理工大學(xué).基于ARM和DsP的嵌入式數(shù)控系統(tǒng).中華人民共和國(guó)國(guó)家知識(shí)產(chǎn)權(quán)局,200610124742.0,2007-03-28

[3]金展,傅建中,陳子辰基于ARM的嵌入式數(shù)控系統(tǒng)設(shè)計(jì)[J].機(jī)電工程,2005,22(2)

主站蜘蛛池模板: 阳春市| 辉县市| 尖扎县| 北流市| 海伦市| 南平市| 大姚县| 青川县| 桐乡市| 嵩明县| 通辽市| 太保市| 余江县| 六枝特区| 依安县| 南川市| 旬阳县| 建阳市| 交口县| 江西省| 凭祥市| 垫江县| 濮阳县| 松滋市| 都昌县| 兴化市| 伊春市| 哈密市| 怀柔区| 容城县| 林西县| 赤水市| 昌黎县| 朔州市| 清水河县| 涪陵区| 乐业县| 凌海市| 大城县| 阳山县| 右玉县|