嵌入式系統(tǒng)設(shè)計(jì)實(shí)例課件_第1頁
嵌入式系統(tǒng)設(shè)計(jì)實(shí)例課件_第2頁
嵌入式系統(tǒng)設(shè)計(jì)實(shí)例課件_第3頁
嵌入式系統(tǒng)設(shè)計(jì)實(shí)例課件_第4頁
嵌入式系統(tǒng)設(shè)計(jì)實(shí)例課件_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ARM原理及應(yīng)用第九講嵌入式系統(tǒng)開發(fā)實(shí)例本節(jié)提要12嵌入式數(shù)控系統(tǒng)設(shè)計(jì)實(shí)例ARMMP3設(shè)計(jì)實(shí)例嵌入式系統(tǒng)設(shè)計(jì)流程產(chǎn)品定義:需求分析軟硬件劃分迭代與實(shí)現(xiàn)詳細(xì)的硬件與軟件設(shè)計(jì)系統(tǒng)測(cè)試系統(tǒng)維護(hù)與升級(jí)嵌入式系統(tǒng)的軟硬件劃分原則性能原則性價(jià)比原則資源利用率原則軟硬件協(xié)同設(shè)計(jì)硬件工程師考慮的問題硬件開發(fā)的投入及時(shí)間以縮小電路規(guī)模,抑制功耗為目的的設(shè)計(jì)會(huì)降低通用性和可維護(hù)性。2.軟件工程師考慮的問題較多的源代碼可以確保軟件的可維護(hù)性嵌入式系統(tǒng)詳細(xì)設(shè)計(jì)選擇處理器處理器的性能必須足夠執(zhí)行任務(wù)和支持產(chǎn)品生命周期支持軟件創(chuàng)建、調(diào)試、系統(tǒng)集成、代碼調(diào)整和優(yōu)化功能的軟件開發(fā)人員擁有處理器或處理器系列產(chǎn)品的開發(fā)經(jīng)驗(yàn)選擇操作系統(tǒng)操作系統(tǒng)支持的微處理器操作系統(tǒng)的性能操作系統(tǒng)的軟件組件、中間件和設(shè)備驅(qū)動(dòng)程序操作系統(tǒng)的調(diào)試工具、開發(fā)環(huán)境、在線仿真器(ICE)、編譯器、匯編器、連接器、調(diào)試器以及模擬器等。5.操作系統(tǒng)的標(biāo)準(zhǔn)兼容性6.操作系統(tǒng)的技術(shù)支持程度7.操作系統(tǒng)是提供源代碼還是目標(biāo)代碼8.操作系統(tǒng)的許可使用情況開發(fā)平臺(tái):操作系統(tǒng)相關(guān)的開發(fā)平臺(tái)相關(guān)外設(shè)的選擇FLASH,PROM(容量,boot速度),RAM(容量,速度)成本、功耗、產(chǎn)品上市時(shí)間詳細(xì)的硬件與軟件設(shè)計(jì)流程硬件設(shè)計(jì)流程芯片選型-關(guān)鍵電路試驗(yàn)-原理圖繪制-原理圖評(píng)審-印制板-樣板試制-硬件功能測(cè)試-硬件穩(wěn)定性測(cè)試軟件設(shè)計(jì)流程軟件代碼編制準(zhǔn)備-軟件代碼編制-軟件單元代碼走讀-代碼單元測(cè)試-單元代碼修改-單元代碼回歸測(cè)試嵌入式數(shù)控系統(tǒng)設(shè)計(jì)實(shí)例需求分析—(數(shù)控系統(tǒng)需求分析)架構(gòu)設(shè)計(jì)—(數(shù)控系統(tǒng)架構(gòu)分析)詳細(xì)設(shè)計(jì)—(數(shù)控系統(tǒng)的詳細(xì)設(shè)計(jì))系統(tǒng)測(cè)試—(數(shù)控系統(tǒng)的測(cè)試)數(shù)控系統(tǒng)是一種自動(dòng)閱讀輸入載體上事先給定的數(shù)據(jù),并將其譯碼,從而使機(jī)床移動(dòng)和加工零件的控制系統(tǒng).它的工作原理是通過各種輸入方式,接受加工零件的各種數(shù)據(jù)信息,經(jīng)過譯碼、處理、插補(bǔ),生成各坐標(biāo)軸的參考位置,把各軸的參考位置送到軸控制器中,驅(qū)動(dòng)軸的運(yùn)動(dòng),使各個(gè)坐標(biāo)軸能精確地運(yùn)動(dòng)到所要求的位置。需求分析——功能需求功能需求—數(shù)控系統(tǒng)控制裝置PLC人機(jī)界面軸冷卻主軸….反饋速度位置輸入輸出速度位置指令狀態(tài)反饋開/關(guān)CNC機(jī)床M功能PLC功能機(jī)床控制器CNC機(jī)床控制模型需求分析輸入輸出輸入/輸出/通訊功能字符圖形顯示功能程序編制功能數(shù)據(jù)處理插補(bǔ)功能進(jìn)給功能主軸速度功能刀具功能補(bǔ)償功能輔助功能報(bào)警自診斷功能需求分析-數(shù)控系統(tǒng)的功能非功能需求物理環(huán)境-車間,工作環(huán)境惡劣用戶-一般是車間操作員,操作水平有高有低質(zhì)量保證--用在工業(yè)控制環(huán)境質(zhì)量要求高,同時(shí)現(xiàn)在市場(chǎng)競(jìng)爭(zhēng)激烈,如果質(zhì)量不好很難在市場(chǎng)上站住腳非功能需求-數(shù)控系統(tǒng)QOS數(shù)控系統(tǒng)響應(yīng)性高,主要是對(duì)突發(fā)事件的反應(yīng)(如撞刀,急停)數(shù)控系統(tǒng)具有可確定性。因?yàn)榭纱_定性主要是確保條件/事件出現(xiàn)和由此引起的動(dòng)作開始/結(jié)束的時(shí)間在一個(gè)準(zhǔn)確的時(shí)間間隔內(nèi)。在CNC系統(tǒng)中,條件/事件是由操作員的指令(緊急停止,移動(dòng)x軸等)或是機(jī)床的狀態(tài)(如刀具破損等)引起的。實(shí)際上,需要滿足時(shí)間約束的情況主要是和系統(tǒng)安全(如對(duì)突發(fā)事件的反應(yīng)等)以及切削精度(更高的精度影響插補(bǔ)周期)有關(guān),因此數(shù)控系統(tǒng)具有硬實(shí)時(shí)任務(wù)。硬實(shí)時(shí)任務(wù)指必須滿足最后期限的限制,否則會(huì)給系統(tǒng)帶來不希望的破壞或者致命的錯(cuò)誤。性能高-需要進(jìn)行許多復(fù)雜的運(yùn)算可靠性-可靠性要高,在加工過程中不出現(xiàn)問題,至少一個(gè)月之內(nèi)不能死機(jī),出現(xiàn)故障,安全程度高非功能需求-QOS如果已有的系統(tǒng)系統(tǒng)實(shí)現(xiàn)了相似的功能,重用該結(jié)構(gòu)是個(gè)很好的選擇如果這是個(gè)全新的項(xiàng)目,考慮這些功能是否能用一個(gè)處理器實(shí)現(xiàn).單個(gè)處理器最容易實(shí)現(xiàn)和調(diào)試的如果該應(yīng)用需要用多個(gè)處理器,最好選用能夠滿足需求的最少處理器實(shí)現(xiàn)在多處理器設(shè)計(jì)中,把控制和管理用一個(gè)處理器實(shí)現(xiàn),這樣簡(jiǎn)化了操作.系統(tǒng)中其他處理器處理系統(tǒng)中的工作負(fù)載.按照這種方式設(shè)計(jì)的多處理器系統(tǒng),可以從一個(gè)小的系統(tǒng)擴(kuò)充為一個(gè)大的系統(tǒng),通過增加處理器.因此客戶可以從簡(jiǎn)單的處理器入手,隨著系統(tǒng)負(fù)載的增加而增加需求分析——識(shí)別處理器平臺(tái)的特殊需求(該平臺(tái)是否需要實(shí)時(shí)操作系統(tǒng)的支持)對(duì)該硬件和軟件平臺(tái)的使用情況?支持該硬件和軟件平臺(tái)公司的財(cái)務(wù)狀況如何?(當(dāng)然不能選擇不能提供硬件/軟件平臺(tái)支持的公司的產(chǎn)品提供該平臺(tái)公司的發(fā)展目標(biāo)是什么?(當(dāng)然不希望選擇的平臺(tái)沒有一個(gè)清晰的升級(jí)途徑)該平臺(tái)是否有合適的開發(fā)工具可以使用該平臺(tái)開發(fā)的開發(fā)人員有多少?對(duì)開發(fā)人員培訓(xùn)的費(fèi)用是多少預(yù)留性能(例如,不能選用一個(gè)CPU資源使用80%,預(yù)留未來增加的空間該平臺(tái)需要完善嗎?一個(gè)良好的平臺(tái)比一個(gè)需要完善的平臺(tái)要便宜得多平臺(tái)的設(shè)備驅(qū)動(dòng)程序(是否能夠提供用戶開發(fā)的設(shè)備驅(qū)動(dòng)程序)平臺(tái)支持那些通訊協(xié)議(如.平臺(tái)平臺(tái)是否支持TCP/IP,HTTP,UDP等)挑選操作系統(tǒng)和硬件(a)(b)(c)網(wǎng)絡(luò)接口HMI專用通道機(jī)床…..PLC控制裝置數(shù)控系統(tǒng)機(jī)床…..PLC控制裝置CNC單元PC機(jī)床…..控制軟件軸伺服軸伺服軸伺服軸伺服軸伺服軸伺服PCPC網(wǎng)絡(luò)接口HMI網(wǎng)絡(luò)接口HMI選擇處理器—數(shù)控系統(tǒng)處理器現(xiàn)在可用的數(shù)控系統(tǒng)有單個(gè)CPU,兩個(gè)CPU,三個(gè)CPU高檔數(shù)控一般采用兩個(gè)CPU實(shí)現(xiàn),更有甚者采用三個(gè)CPU,我們這個(gè)項(xiàng)目為中低檔數(shù)控,單個(gè)處理器可以實(shí)現(xiàn)Arm7的性能滿足系統(tǒng)的需要,同時(shí)由于需要IO的實(shí)現(xiàn),以及伺服電機(jī)的控制,所以采用ARM7+FPGA的結(jié)構(gòu)。ARM芯片價(jià)格低廉。選擇處理器—數(shù)控系統(tǒng)處理器操作系統(tǒng)平臺(tái)的選取通用操作系統(tǒng)(windowunix/linux)本質(zhì)上是不可預(yù)測(cè)的,導(dǎo)致實(shí)時(shí)處理的不可靠性(即使是相對(duì)較慢,計(jì)算簡(jiǎn)單的任務(wù))。通用系統(tǒng)都是多任務(wù)系統(tǒng),意味著它們?cè)试S計(jì)算機(jī)同時(shí)運(yùn)行幾個(gè)進(jìn)程。它們通過分時(shí)技術(shù)允許多個(gè)任務(wù)并發(fā),在所有活動(dòng)任務(wù)間分配資源。分時(shí)的一個(gè)直接后果是實(shí)時(shí)精度不能保證,很多時(shí)候,程序員使用軟件中斷滿足任務(wù)的最后期限,這就是強(qiáng)迫操作系統(tǒng)在一個(gè)給定的時(shí)間響應(yīng)中斷并提供服務(wù),然而由于中斷的分辨率很低(如linux是100hz),這個(gè)方法只在任務(wù)實(shí)時(shí)性較低的情況下使用(也就是說任務(wù)的速率比中斷的速率還要低)。還有就是對(duì)操作系統(tǒng)底層的修改,如提高中斷頻率,改變?nèi)蝿?wù)的優(yōu)先級(jí)等方法可以提高一些操作系統(tǒng)的實(shí)時(shí)精度,但是這樣的改變對(duì)操作系統(tǒng)的性能有一定的損壞。實(shí)時(shí)操作系統(tǒng)專用實(shí)時(shí)系統(tǒng)VxWorks,WindowCEQNX,REAL/IX等。RTOS費(fèi)用很高,開放源碼的實(shí)時(shí)系統(tǒng)rtai,rtlinuxucosDOS,許多控制系統(tǒng)包括數(shù)控系統(tǒng)仍然使用DOS。DOS之所以能夠保證系統(tǒng)的實(shí)時(shí)性,只是因?yàn)樗皇嵌嗳蝿?wù)系統(tǒng)——它每次只執(zhí)行一個(gè)任務(wù)。DOS只專注于一個(gè)任務(wù),這樣可以保證任務(wù)的實(shí)時(shí)性。操作系統(tǒng)平臺(tái)的選取ucosII的理由ucosII是個(gè)實(shí)時(shí)多任務(wù)操作系統(tǒng)是個(gè)開放源碼--降低開發(fā)費(fèi)用,如果選擇專業(yè)操作系統(tǒng),費(fèi)用高有強(qiáng)有力的支持(這一點(diǎn)是選擇這個(gè)系統(tǒng)很重要的原因)操作系統(tǒng)平臺(tái)的選取數(shù)控系統(tǒng)設(shè)計(jì)數(shù)控系統(tǒng)設(shè)計(jì)與開發(fā)定義系統(tǒng)總體結(jié)構(gòu)定義軟件總體結(jié)構(gòu)軟硬件協(xié)同設(shè)計(jì)定義軟件模塊任務(wù)設(shè)計(jì)數(shù)控系統(tǒng)設(shè)計(jì)-定義系統(tǒng)結(jié)構(gòu)數(shù)控系統(tǒng)總體結(jié)構(gòu)采用處理器設(shè)計(jì)模式系統(tǒng)采用單一處理器結(jié)構(gòu)ARM系統(tǒng)ARM+FPGA實(shí)現(xiàn)整個(gè)硬件系統(tǒng)數(shù)控系統(tǒng)設(shè)計(jì)-定義軟件總體結(jié)構(gòu)數(shù)控系統(tǒng)軟件總體結(jié)構(gòu)軟件采用任務(wù)設(shè)計(jì)模式和功能協(xié)調(diào)模式相結(jié)合的軟件結(jié)構(gòu)任務(wù)內(nèi)部采用有限狀態(tài)機(jī)的設(shè)計(jì)模式數(shù)控系統(tǒng)設(shè)計(jì)-軟硬件協(xié)同設(shè)計(jì)軟硬件協(xié)同設(shè)計(jì)一旦軟件結(jié)構(gòu)確定了,硬件和軟件工作組在一起工作確定軟件和相關(guān)的功能。這個(gè)過程是指軟件和硬件工作組一起工作定義最終系統(tǒng)結(jié)構(gòu).這是一個(gè)迭代的過程,系統(tǒng)結(jié)構(gòu)的改變有時(shí)會(huì)改變軟件和硬件的結(jié)構(gòu).數(shù)控系統(tǒng)設(shè)計(jì)-定義軟件模塊定義軟件模塊確定系統(tǒng)需要支持的所有功能.基于實(shí)現(xiàn)的工作類型分組.把執(zhí)行同一功能的模塊歸為一個(gè)任務(wù).例如人機(jī)界面,譯碼,插補(bǔ),伺服等.數(shù)控系統(tǒng)設(shè)計(jì)-數(shù)控系統(tǒng)任務(wù)模塊數(shù)控系統(tǒng)任務(wù)模塊人機(jī)界面-顯示,操作,控制功能譯碼模塊-把數(shù)控代碼翻譯成可識(shí)別的結(jié)構(gòu)插補(bǔ)模塊-把數(shù)據(jù)點(diǎn)細(xì)化伺服模塊-生成脈沖指令控制電機(jī)總控模塊-協(xié)調(diào)各個(gè)模塊之間的關(guān)系邏輯模塊-處理IO口數(shù)控系統(tǒng)設(shè)計(jì)-數(shù)控系統(tǒng)任務(wù)模塊OSTaskCreate(Frame_Task,(void*)0,(OS_STK*)&Frame_Task_Stack[STACKSIZE-1],CNC_Frame_Task_Pri);//1OSTaskCreate(Interp_Task,(void*)0,(OS_STK*)&Interp_Task_Stack[STACKSIZE-1],CNC_Interp_Task_Pri);//1OSTaskCreate(Decode_Task,(void*)0,(OS_STK*)&Decode_Task_Stack[STACKSIZE-1],CNC_Decode_Task_Pri);//1OSTaskCreate(Display_Task,(void*)0,(OS_STK*)&Display_Task_Stack[STACKSIZE-1],CNC_Display_Task_Pri);//1OSTaskCreate(Logic_Task,(void*)0,(OS_STK*)&Logic_Task_Stack[STACKSIZE-1],CNC_Logic_Task_Pri);//1數(shù)控系統(tǒng)設(shè)計(jì)-任務(wù)設(shè)計(jì)數(shù)控系統(tǒng)任務(wù)設(shè)計(jì)指南不要引入很多狀態(tài)使設(shè)計(jì)復(fù)雜化.不要使用太少的狀態(tài)使設(shè)計(jì)復(fù)雜化.使數(shù)據(jù)結(jié)構(gòu)定義簡(jiǎn)單.處理存儲(chǔ)越界的情況.考慮所有定義的場(chǎng)景.確保所有分配的資源在結(jié)束時(shí)釋放.考慮使用層次狀態(tài)機(jī)簡(jiǎn)化狀態(tài)機(jī)設(shè)計(jì).數(shù)控系統(tǒng)設(shè)計(jì)-任務(wù)設(shè)計(jì)選擇任務(wù)類型單個(gè)狀態(tài)機(jī)多個(gè)任務(wù)選擇狀態(tài)機(jī)簡(jiǎn)單狀態(tài)機(jī)數(shù)控系統(tǒng)設(shè)計(jì)-任務(wù)設(shè)計(jì)分配優(yōu)先級(jí),由于采用ucos操作系統(tǒng),操作系統(tǒng)采用基于優(yōu)先權(quán)可搶占的調(diào)度方式采用靜態(tài)固定分配,優(yōu)先級(jí)與周期成反比,周期越短優(yōu)先級(jí)越高。非周期性任務(wù)則按照重要性分配,重要性越高優(yōu)先級(jí)越高系統(tǒng)的優(yōu)先級(jí)分配情況如下:伺服最高,插補(bǔ)次之,邏輯處理次之,譯碼次之,人機(jī)界面最低數(shù)控系統(tǒng)設(shè)計(jì)-任務(wù)之間通訊任務(wù)間通訊ucos-II提供郵箱,消息隊(duì)列,全局變量,共享內(nèi)存的方式提供任務(wù)間通訊各種通訊方式的比較郵箱消息隊(duì)列全局變量共享內(nèi)存共享內(nèi)存是最快的通訊方式數(shù)控系統(tǒng)設(shè)計(jì)-共享內(nèi)存OSMemCreate()創(chuàng)建內(nèi)存voidinitCNCMem(void){ INT8Uerr; pCNCMem=OSMemCreate(CNCMemPart,CNCMemSize,CNCblkSize,&err); if(pCNCMem==NULL){ Uart_Printf("FailedtoCreateCNCMessagequote"); }}OSMemGet()獲得內(nèi)存voidinitManual_data(void){INT8Uerr; manual_data=(MANUALDATA*)OSMemGet(pCNCMem,&err);}//endinitManual_data數(shù)控系統(tǒng)設(shè)計(jì)-共享內(nèi)存任務(wù)1任務(wù)2任務(wù)3全局變量表局部變量表局部變量表TM4TM3TM1TM2數(shù)控系統(tǒng)設(shè)計(jì)-共享內(nèi)存局部變量表數(shù)據(jù)結(jié)構(gòu)全局變量表數(shù)據(jù)結(jié)構(gòu)GIFitem1nameGIF_nvarGIF_sizeGIF_timeGIF_lockGIF_dirtGIF_firstGIF_lastGIFitem3GIFitem2GIFitemnnextGIF_typeGIF_tsGIF_nextGIF_spot到下一個(gè)元素gdata_spotqdata_spotldata_typeditem2ditemn…..ldata_typegdata_spotditem1litemnitemVarCopyToGsizetimegptrliterm1litem2…..itemPCopyToGqitem[n]itemVarCopyFromGitemPCopyFromG存放數(shù)據(jù)的內(nèi)存區(qū)數(shù)據(jù)項(xiàng)nvarname數(shù)控系統(tǒng)設(shè)計(jì)-同步方法:關(guān)中斷/開中斷

OS_ENTER_CRITICAL();dostuffOS_EXIT_CRITICAL();信號(hào)量voidOSSemPend(OS_EVENT*pevent,INT16Utimeout,INT8U*err);INT8UOSSemPost(OS_EVENT*pevent);互斥量voidOSMutexPend(OS_EVENT*pevent,INT16Utimeout,INT8U*err);INT8UOSMutexPost(OS_EVENT*pevent);全局變量boolXXXflag=0If(xxxflag==0){if(xxxflag==1){Dostuff;dostuff;xxxflag=1;xxxflag=0}}數(shù)控系統(tǒng)設(shè)計(jì)-同步優(yōu)先級(jí)逆轉(zhuǎn)一般是在兩個(gè)任務(wù)訪問共享數(shù)據(jù)時(shí)出現(xiàn),為了保證數(shù)據(jù)的一致性,這兩個(gè)訪問必須串行,如果優(yōu)先級(jí)高的任務(wù)首先獲得訪問權(quán),則優(yōu)先級(jí)的順序保持一致,如果優(yōu)先級(jí)低的任務(wù)首先獲得訪問權(quán),這時(shí)優(yōu)先級(jí)高的任務(wù)請(qǐng)求訪問,則優(yōu)先級(jí)高的任務(wù)必須等到優(yōu)先級(jí)低的任務(wù)完成訪問為止解決方法優(yōu)先級(jí)繼承優(yōu)先級(jí)上界數(shù)控系統(tǒng)設(shè)計(jì)-執(zhí)行時(shí)間的測(cè)量時(shí)間測(cè)量主要目的是測(cè)量單個(gè)任務(wù)的執(zhí)行時(shí)間評(píng)估系統(tǒng)的整個(gè)實(shí)時(shí)性能精確的實(shí)時(shí)調(diào)度分析優(yōu)化代碼調(diào)試時(shí)間錯(cuò)誤數(shù)控系統(tǒng)設(shè)計(jì)-執(zhí)行時(shí)間的測(cè)量方法:秒表DateTimeprof和gprof軟件分析儀定時(shí)器/定時(shí)器時(shí)間片邏輯分析儀數(shù)控系統(tǒng)設(shè)計(jì)-執(zhí)行時(shí)間的測(cè)量數(shù)控系統(tǒng)設(shè)計(jì)-clock#include“time.h”O(jiān)S_EXTvolatileINT32UOSTime;/*Currentvalueofsystemtime(inticks)*/INT32Ustart,finish;doubletotlastart=OSTime;Dostufffinish=OSTime;total=(double)(finish-start)/(double)CLK_TCKUart_printf(“Total=%f\n”,total”);數(shù)控系統(tǒng)開發(fā)-周期任務(wù)的實(shí)現(xiàn)ucos-II的任務(wù)是個(gè)無限循環(huán)不是周期任務(wù)Voidtask(void*prio){for(;;){Dostuff}}

利用OSTimeTickHook()函數(shù)實(shí)現(xiàn)周期性函數(shù),不過只能實(shí)現(xiàn)ticks整數(shù)倍的周期任務(wù)數(shù)控系統(tǒng)開發(fā)-周期任務(wù)的實(shí)現(xiàn)voidtask(void*prio){for(;;){OSTaskSuspend(pri);Dostuff;}}intperiodic=0;OSTimeTickHook(){ periodic++; if(periodic>=n){//任務(wù)周期=n*ticks OSTaskResume(pri) }}設(shè)計(jì)原則--越簡(jiǎn)單越好系統(tǒng)詳細(xì)設(shè)計(jì)指南使用查找表和指針函數(shù)而不是ifelseorswitch使用固定大小的數(shù)組避免動(dòng)態(tài)分配內(nèi)存降低系統(tǒng)中的任務(wù)數(shù)避免任務(wù)互相依賴避免多線程設(shè)計(jì)避免一個(gè)大的循環(huán)對(duì)經(jīng)常執(zhí)行的部分進(jìn)行優(yōu)化使用狀態(tài)機(jī)簡(jiǎn)化設(shè)計(jì)在開始對(duì)軟件進(jìn)行優(yōu)化對(duì)時(shí)間進(jìn)行測(cè)量使用時(shí)間標(biāo)記,避免運(yùn)行定時(shí)器

設(shè)計(jì)原則--越簡(jiǎn)單越好系統(tǒng)設(shè)計(jì)指南在設(shè)計(jì)時(shí)要注意內(nèi)存分析避免使用循環(huán)延時(shí)而用系統(tǒng)提供的延時(shí)機(jī)制降低消息握手次數(shù)簡(jiǎn)化硬件結(jié)構(gòu)優(yōu)先選用通用的計(jì)算平臺(tái)而不是特殊的平臺(tái)不要使用具有所有權(quán)的協(xié)議和操作系統(tǒng)優(yōu)先購買硬件平臺(tái)而不是設(shè)計(jì)優(yōu)先考慮重用設(shè)計(jì)避免使用異類的硬件和軟件環(huán)境考慮硬件升級(jí)降低軟件的努力把配置系統(tǒng)參數(shù)減小到最小“0或者1或者n”規(guī)則

設(shè)計(jì)原則--查找表boolisServiceAllowed(TerminalTypetype,Serviceservice){boolallowed=false;if(type==PLATINUM){if(service==VOICE||service==HIGH_SPEED_DATA||service==FAX){allowed=true;}}elseif(type==GOLD){if(service==VOICE||service==LOW_SPEED_DATA||service==FAX){allowed=true;}}elseif(type==SILVER){if(service==LOW_SPEED_VOICE||service==LOW_SPEED_FAX){allowed=true;}}returnallowed;}

boolisServiceAllowed(TerminalTypetype,Serviceservice){return(terminalServiceLookup[type][service])}

設(shè)計(jì)原則--不使用大循環(huán)任務(wù)2任務(wù)3任務(wù)1使用適當(dāng)?shù)牟⑿性O(shè)計(jì)方法非搶占-周期或多速率執(zhí)行搶占-實(shí)時(shí)操作系統(tǒng)不用中斷模擬多任務(wù)設(shè)計(jì)原則--時(shí)間標(biāo)記

boolincrementLeakyCounter(){booloverflow=false;/*Thiscounterneedstoberesetiftheerrorcounterhasnotbeenincrementedforalongduration.Themainobjectiveistocatchaflurryoferrorsleadingtocounteroverflow*/if((currentTime-lastIncrementTime)>LEAK_PERIOD){counter=0;}lastIncrementTime=currentTime;counter++;if(counter>OVERFLOW_THRESHOLD){overflow=true;}returnoverflow;}數(shù)控系統(tǒng)開發(fā)-導(dǎo)致系統(tǒng)崩潰的問題下面的軟件問題導(dǎo)致軟件崩潰:無效的數(shù)組索引沒有初始化的指針操作沒有授權(quán)的buffer操作非法的棧操作無效的處理器操作無限循環(huán)

嵌入式數(shù)控系統(tǒng)原型樣機(jī)(2003年)系統(tǒng)應(yīng)力測(cè)試功能干涉測(cè)試干涉負(fù)載測(cè)試應(yīng)力負(fù)載測(cè)試系統(tǒng)應(yīng)力測(cè)試系統(tǒng)測(cè)試-功能干涉測(cè)試干涉測(cè)試過程一旦定下功能測(cè)試矩陣,需要從矩陣中定下詳細(xì)的測(cè)試過程。測(cè)試過程分為兩類:簡(jiǎn)單測(cè)試,只涉兩個(gè)功能間的干涉負(fù)載測(cè)試,涉及多個(gè)功能間的干涉測(cè)試功能干涉測(cè)試干涉負(fù)載負(fù)載測(cè)試可以從干涉矩陣中得到.基本上是就不同的功能運(yùn)行同時(shí)同一個(gè)負(fù)載。這里負(fù)載也許意味著通過腳本重復(fù)執(zhí)行操作者命令,周期性重啟系統(tǒng)板等上面的矩陣可以是干涉負(fù)載測(cè)試最好的例子:整天運(yùn)行自動(dòng)運(yùn)行同時(shí)MDI命令.運(yùn)行手動(dòng)方式下執(zhí)行MDI和自動(dòng)運(yùn)行等.干涉負(fù)載測(cè)試應(yīng)力負(fù)載測(cè)試指南過載系統(tǒng).在實(shí)際的環(huán)境中進(jìn)行負(fù)載測(cè)試.

負(fù)載測(cè)試時(shí)負(fù)載隨時(shí)間不同而不同.測(cè)試同一時(shí)間到達(dá)的負(fù)載。測(cè)試具有不同服務(wù)時(shí)間的負(fù)載.

測(cè)試負(fù)載性能.應(yīng)力負(fù)載測(cè)試譯碼任務(wù)過載,插補(bǔ)任務(wù)過載,伺服任務(wù)過載,中斷過載以上任一任務(wù)的過載都會(huì)引起系統(tǒng)向伺服電機(jī)發(fā)送脈沖的間斷,同時(shí)顯示刷新太慢。數(shù)控系統(tǒng)應(yīng)力負(fù)載測(cè)試本節(jié)提要12嵌入式數(shù)控系統(tǒng)設(shè)計(jì)實(shí)例ARMMP3設(shè)計(jì)實(shí)例設(shè)計(jì)實(shí)例——基于ARM7MP3Player要實(shí)現(xiàn)MP3Player主要有以下兩種方法:1、MCU+USB接口芯片+硬件解碼芯片+海量存儲(chǔ)芯片+音頻DAC+耳機(jī)放大器;(實(shí)現(xiàn)參考UP-MP3DIY2.00學(xué)習(xí)板)2、MCU+USB接口芯片+軟件解碼算法+海量存儲(chǔ)芯片+音頻DAC+耳機(jī)放大器;(實(shí)現(xiàn)參考UP-ARMMP3DIY1.00學(xué)習(xí)板)前者的MCU可以為MCS-51系列單片機(jī),(如AT89C51SND1)后者為ARM7體系結(jié)構(gòu)的微控制器。(如S3C44B0X)基于ARM的MP3播放器ARM微處理器SDRAMNandFlashNorFlash網(wǎng)卡芯片音頻芯片USB芯片小鍵盤電源系統(tǒng)硬件方案實(shí)現(xiàn)

基于S3C44B0X微處理器+軟件解碼算法的MP3Player的硬件方案實(shí)現(xiàn)如下:S3C44B0X最小系統(tǒng):CPU、RAM、ROM和電源、復(fù)位、JTAG。擴(kuò)展部分:音頻DAC、UART、鍵盤、NANDFLASH、USB接口、以太網(wǎng)接口。實(shí)現(xiàn)最小系統(tǒng)1、S3C44B0X的結(jié)構(gòu)和特點(diǎn):S3C44B0X微處理器是三星公司專為手持設(shè)備和一般應(yīng)用提供的高性價(jià)比的微控制器解決方案,它使用ARM7TDMI核,工作在66MHz。

⑴帶8KB緩存的2.5V靜態(tài)ARM7TDMICPU核;⑵擴(kuò)展內(nèi)存控制器(FP/FDO/SDRAM控制,片選邏輯);⑶2個(gè)通用DMA通道,1個(gè)帶外部請(qǐng)求管腳的DMA通道;⑷71個(gè)通用I/O口,8個(gè)外部中斷資源;⑸帶PLL的片上時(shí)鐘發(fā)生器;⑹8個(gè)內(nèi)存Bank共可以尋址256MB存儲(chǔ)空間;⑺UART和IIS總線接口;……

S3C44B0X豐富的內(nèi)部資源,使得系統(tǒng)硬件設(shè)計(jì)大大簡(jiǎn)化:時(shí)鐘和復(fù)位電路系統(tǒng)時(shí)鐘輸入由6MHz的外部晶陣提供,由內(nèi)部PLL電路倍頻至66MHz,供給CPU運(yùn)行。系統(tǒng)復(fù)位信號(hào)由IMP811T芯片提供,并且設(shè)計(jì)了RESET按鈕,可以在系統(tǒng)運(yùn)行過程中隨時(shí)復(fù)位操作,便于系統(tǒng)調(diào)試。系統(tǒng)初始配置和JTAG調(diào)試接口:

下面的電路圖中的8個(gè)電阻分別為JTAG上拉電阻和系統(tǒng)運(yùn)行模式初始配置的電阻,右邊的插座為14PinJTAG調(diào)試插座,配合仿真器可以下載bootloader代碼和調(diào)試應(yīng)用程序。系統(tǒng)總線和控制信號(hào),RAM的連接:系統(tǒng)中所使用的RAM芯片與處理器的連接方式。以前的PC-133的計(jì)算機(jī)內(nèi)存芯片,型號(hào)為HY57V641620。ROM的連接:ARM處理器最小系統(tǒng)中的ROM芯片與處理器的連接方式。這里配置容量為2MB的NORFLASH芯片,型號(hào)為AM29LV160。系統(tǒng)供電電源:系統(tǒng)中所用到電壓有3種:5v、3.3v和2.5v。其中5v為系統(tǒng)總電源,3.3v電壓供給系統(tǒng)外設(shè)接口,2.5v為處理器的內(nèi)核電壓。最小系統(tǒng)配置完成:到此為止,S3C44B0X的最小系統(tǒng)已經(jīng)可以運(yùn)行了,這也是該MP3系統(tǒng)的運(yùn)行的基礎(chǔ),我們可以在這個(gè)系統(tǒng)上下載到系統(tǒng)的ROM中,運(yùn)行測(cè)試最小系統(tǒng)。我們?cè)趯?duì)最小系統(tǒng)做到成竹在心之時(shí),后面的MP3Player的實(shí)現(xiàn)工作定會(huì)達(dá)到事半功倍的效果!NandFlash存儲(chǔ)器:

NandFlash存儲(chǔ)器在系統(tǒng)中作為電子硬盤使用,用來存儲(chǔ)MP3歌曲和應(yīng)用程序。USB通訊接口:U

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論