第5章 嵌入式系統(tǒng)設計實例08997_第1頁
第5章 嵌入式系統(tǒng)設計實例08997_第2頁
第5章 嵌入式系統(tǒng)設計實例08997_第3頁
第5章 嵌入式系統(tǒng)設計實例08997_第4頁
第5章 嵌入式系統(tǒng)設計實例08997_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 嵌入式系統(tǒng)嵌入式系統(tǒng) 第五章第五章 嵌入式系統(tǒng)開發(fā)實例嵌入式系統(tǒng)開發(fā)實例 2 本節(jié)提要本節(jié)提要 嵌入式數控系統(tǒng)設計實例嵌入式數控系統(tǒng)設計實例 ARM MP3設計實例設計實例 3 實時系統(tǒng) l反應時間反應時間 l任務的反應時間是一個任務應當開始執(zhí)行任務的反應時間是一個任務應當開始執(zhí)行(或結束或結束)的時刻與實際執(zhí)行的時刻與實際執(zhí)行 的時刻差值的時刻差值.(或者說或者說,一個事件的產生和響應的時間間隔一個事件的產生和響應的時間間隔) l決定反應時間的幾個因素決定反應時間的幾個因素 l處理器、總線、內存(片上高速緩沖存儲器,片下處理器、總線、內存(片上高速緩沖存儲器,片下RAM和和ROM)以)以

2、 及外圍設備的時間特性及外圍設備的時間特性 l操作系統(tǒng)的調度特性操作系統(tǒng)的調度特性 l內核的占先特性內核的占先特性 l系統(tǒng)的負載(也就是說同一時刻需要調度的任務的數量系統(tǒng)的負載(也就是說同一時刻需要調度的任務的數量) l任務轉換時間。指的是處理器需要保存正在運行任務的數據的時間任務轉換時間。指的是處理器需要保存正在運行任務的數據的時間 (例如寄存器,堆棧和指針例如寄存器,堆棧和指針),以及將它的數據替換成新調度的任務的,以及將它的數據替換成新調度的任務的 本地數據的時間。這些因素很難在時間上保持穩(wěn)定,在并發(fā)的任務調本地數據的時間。這些因素很難在時間上保持穩(wěn)定,在并發(fā)的任務調 度中靜態(tài)分配延時稱

3、為度中靜態(tài)分配延時稱為jitter。 4 實時系統(tǒng) l時間約束時間約束 l不同的應用有不同的時間約束不同的應用有不同的時間約束,理想狀態(tài)下理想狀態(tài)下,實時操作系統(tǒng)能夠滿足時間實時操作系統(tǒng)能夠滿足時間 約束。然而現在還沒有一個普遍的有保證的調度算法能夠使所有以下這約束。然而現在還沒有一個普遍的有保證的調度算法能夠使所有以下這 些時間約束都滿足:些時間約束都滿足: l最后期限最后期限:一個任務必須在指定時間內完成一個任務必須在指定時間內完成,但是有時任務在指定時間但是有時任務在指定時間 內完成的結果對質量并不重要內完成的結果對質量并不重要.例如例如:在緩沖區(qū)清空之前,處理器必須在緩沖區(qū)清空之前,處

4、理器必須 將聲卡的緩沖區(qū)填滿將聲卡的緩沖區(qū)填滿;在另一個外圍設備到達并且讀那個值之前,輸在另一個外圍設備到達并且讀那個值之前,輸 出端口的電壓必須到達一個給定值。出端口的電壓必須到達一個給定值。 l零執(zhí)行時間零執(zhí)行時間:理想狀態(tài)下理想狀態(tài)下,任務的執(zhí)行時間為零任務的執(zhí)行時間為零.如如:測量測量,計算計算,把結果傳把結果傳 給外圍設備都發(fā)生在瞬間。給外圍設備都發(fā)生在瞬間。 l服務質量服務質量(QoS):在一個時間單位里任務得到在一個時間單位里任務得到“服務服務”的數量的數量.(“服務服務” 通常的意義是通常的意義是“CPU時間時間”,但也可以是但也可以是“內存頁內存頁”,“網絡帶寬網絡帶寬” 或

5、者或者“磁盤訪問帶寬磁盤訪問帶寬”。)。) 5 實時系統(tǒng) l實時系統(tǒng)任務分類實時系統(tǒng)任務分類: l周期任務在規(guī)定的時間間隔里運行周期任務在規(guī)定的時間間隔里運行 l非周期任務非周期性任務非周期任務非周期性任務 6 嵌入式系統(tǒng)設計 l需求分析需求分析(數控系統(tǒng)需求分析數控系統(tǒng)需求分析) l架構設計架構設計(數控系統(tǒng)架構分析數控系統(tǒng)架構分析) l詳細設計詳細設計(數控系統(tǒng)的詳細設計數控系統(tǒng)的詳細設計) l系統(tǒng)測試系統(tǒng)測試 (數控系統(tǒng)的測試數控系統(tǒng)的測試) 7 l數控系統(tǒng)是一種自動閱讀輸入載體上事先給數控系統(tǒng)是一種自動閱讀輸入載體上事先給 定的數據,并將其譯碼,從而使機床移動和定的數據,并將其譯碼,從

6、而使機床移動和 加工零件的控制系統(tǒng)加工零件的控制系統(tǒng). . l工作原理是通過各種輸入方式,接受加工零工作原理是通過各種輸入方式,接受加工零 件的各種數據信息,經過譯碼、處理、插補,件的各種數據信息,經過譯碼、處理、插補, 生成各坐標軸的參考位置,把各軸的參考位生成各坐標軸的參考位置,把各軸的參考位 置送到軸控制器中,驅動軸的運動,使各個置送到軸控制器中,驅動軸的運動,使各個 坐標軸能精確地運動到所要求的位置。坐標軸能精確地運動到所要求的位置。 需求分析功能需求 8 功能需求功能需求數控系統(tǒng)數控系統(tǒng) 控制裝置 PLC 人機界面 軸 冷卻 主軸 . 反饋 速度 位置 輸入 輸出 速度 位置 指令

7、狀態(tài) 反饋 開/關 CNC 機床 M 功能 PLC 功能 機床控制器 CNC機床控制模型 需求分析 9 l輸入輸出輸入輸出 l輸入輸入/ /輸出輸出/ /通訊功能通訊功能 l字符圖形顯示功能字符圖形顯示功能 l程序編制功能程序編制功能 l數據處理數據處理 l插補功能插補功能 l進給功能進給功能 l主軸速度功能主軸速度功能 l刀具功能刀具功能 l補償功能補償功能 l輔助功能輔助功能 l報警報警 l自診斷功能自診斷功能 需求分析數控系統(tǒng)的功能 10 l非功能需求非功能需求 l物理環(huán)境車間,工作環(huán)境惡劣物理環(huán)境車間,工作環(huán)境惡劣 l用戶一般是車間操作員,操作水平有高有低用戶一般是車間操作員,操作水平

8、有高有低 l質量保證用在工業(yè)控制環(huán)境質量要求高,同時質量保證用在工業(yè)控制環(huán)境質量要求高,同時 現在市場競爭激烈,如果質量不好很難在市場上站現在市場競爭激烈,如果質量不好很難在市場上站 住腳住腳 非功能需求數控系統(tǒng) 11 lQOSQOS l數控系統(tǒng)響應性高,主要是對突發(fā)事件的反應(如撞刀,急數控系統(tǒng)響應性高,主要是對突發(fā)事件的反應(如撞刀,急 停)停) l數控系統(tǒng)具有可確定性。因為可確定性主要是確保條件數控系統(tǒng)具有可確定性。因為可確定性主要是確保條件/ /事件事件 出現和由此引起的動作開始出現和由此引起的動作開始/ /結束的時間在一個準確的時間間結束的時間在一個準確的時間間 隔內。在隔內。在CN

9、CCNC系統(tǒng)中,條件系統(tǒng)中,條件/ /事件是由操作員的指令(緊急停事件是由操作員的指令(緊急停 止,移動止,移動x x軸等)或是機床的狀態(tài)(如刀具破損等)引起的。軸等)或是機床的狀態(tài)(如刀具破損等)引起的。 實際上,需要滿足時間約束的情況主要是和系統(tǒng)安全(如對實際上,需要滿足時間約束的情況主要是和系統(tǒng)安全(如對 突發(fā)事件的反應等)以及切削精度(更高的精度影響插補周突發(fā)事件的反應等)以及切削精度(更高的精度影響插補周 期)有關,因此數控系統(tǒng)具有硬實時任務。硬實時任務指必期)有關,因此數控系統(tǒng)具有硬實時任務。硬實時任務指必 須滿足最后期限的限制,否則會給系統(tǒng)帶來不希望的破壞或須滿足最后期限的限制,

10、否則會給系統(tǒng)帶來不希望的破壞或 者致命的錯誤。者致命的錯誤。 l性能高需要進行許多復雜的運算性能高需要進行許多復雜的運算 l可靠性可靠性要高,在加工過程中不出現問題,至少一個可靠性可靠性要高,在加工過程中不出現問題,至少一個 月之內不能死機,出現故障,月之內不能死機,出現故障, l安全程度高安全程度高 非功能需求QOS 12 l如果已有的系統(tǒng)系統(tǒng)實現了相似的功能如果已有的系統(tǒng)系統(tǒng)實現了相似的功能, ,重用該結構是個重用該結構是個 很好的選擇很好的選擇 l如果這是個全新的項目如果這是個全新的項目, ,考慮這些功能是否能用一個處理考慮這些功能是否能用一個處理 器實現器實現. .單個處理器最容易實現

11、和調試的單個處理器最容易實現和調試的 l如果該應用需要用多個處理器如果該應用需要用多個處理器, ,最好選用能夠滿足需求的最好選用能夠滿足需求的 最少處理器實現最少處理器實現 l在多處理器設計中在多處理器設計中, ,把控制和管理用一個處理器實現把控制和管理用一個處理器實現, ,這這 樣簡化了操作樣簡化了操作. .系統(tǒng)中其他處理器處理系統(tǒng)中的工作負載系統(tǒng)中其他處理器處理系統(tǒng)中的工作負載. . l按照這種方式設計的多處理器系統(tǒng)按照這種方式設計的多處理器系統(tǒng), ,可以從一個小的系統(tǒng)可以從一個小的系統(tǒng) 擴充為一個大的系統(tǒng)擴充為一個大的系統(tǒng), ,通過增加處理器通過增加處理器. .因此客戶可以從因此客戶可以

12、從 簡單的處理器入手簡單的處理器入手, ,隨著系統(tǒng)負載的增加而增加隨著系統(tǒng)負載的增加而增加 需求分析識別處理器 13 l平臺的特殊需求平臺的特殊需求( (該平臺是否需要實時操作系統(tǒng)的支持該平臺是否需要實時操作系統(tǒng)的支持) ) l對該硬件和軟件平臺的使用情況對該硬件和軟件平臺的使用情況? ? l支持該硬件和軟件平臺公司的財務狀況如何支持該硬件和軟件平臺公司的財務狀況如何? (? (當然不能選擇不能提供硬件當然不能選擇不能提供硬件 / /軟件平臺支持的公司的產品軟件平臺支持的公司的產品 l提供該平臺公司的發(fā)展目標是什么提供該平臺公司的發(fā)展目標是什么? (? (當然不希望選擇的平臺沒有一個清晰當然不

13、希望選擇的平臺沒有一個清晰 的升級途徑的升級途徑) ) l該平臺是否有合適的開發(fā)工具該平臺是否有合適的開發(fā)工具 l可以使用該平臺開發(fā)的開發(fā)人員有多少可以使用該平臺開發(fā)的開發(fā)人員有多少? ?對開發(fā)人員培訓的費用是多少對開發(fā)人員培訓的費用是多少 l預留性能預留性能 ( (例如例如, ,不能選用一個不能選用一個CPUCPU資源使用資源使用 80%,80%,預留未來預留未來 增加的空間增加的空間 l該平臺需要完善嗎該平臺需要完善嗎? ?一個良好的平臺比一個需要完善的平臺要便宜得多一個良好的平臺比一個需要完善的平臺要便宜得多 l平臺的設備驅動程序平臺的設備驅動程序 ( (是否能夠提供用戶開發(fā)的設備驅動程

14、序是否能夠提供用戶開發(fā)的設備驅動程序) ) l平臺支持那些通訊協(xié)議平臺支持那些通訊協(xié)議( (如如. .平臺平臺是否支持平臺平臺是否支持 TCP/IP, HTTP, UDPTCP/IP, HTTP, UDP等等) ) 挑選操作系統(tǒng)和硬件 14 (a)(a)(b)(b)(c)(c) 網絡網絡 接口接口 HMIHMI 專用通道專用通道 機機 床床 . PLCPLC 控制裝置控制裝置 數控系統(tǒng)數控系統(tǒng) 機機 床床 . PLCPLC控制裝置控制裝置 C N CC N C 單單 元元 PCPC 機機 床床 . 控制軟件控制軟件 軸伺服軸伺服軸伺服軸伺服軸伺服軸伺服軸伺服軸伺服 軸伺服軸伺服軸伺服軸伺服 P

15、CPC PCPC 網絡網絡 接口接口 HMIHMI網絡網絡 接口接口 HMIHMI 選擇處理器數控系統(tǒng)處理器 15 l現在可用的數控系統(tǒng)有單個現在可用的數控系統(tǒng)有單個CPU,CPU,兩個兩個CPU,CPU,三個三個CPUCPU l高檔數控一般采用兩個高檔數控一般采用兩個CPUCPU實現,更有甚者采用三個實現,更有甚者采用三個 CPUCPU,我們這個項目為中低檔數控,單個處理器可以實,我們這個項目為中低檔數控,單個處理器可以實 現現 lArm7Arm7的性能滿足系統(tǒng)的需要,同時由于需要的性能滿足系統(tǒng)的需要,同時由于需要IOIO的實現,的實現, 以及伺服電機的控制,所以采用以及伺服電機的控制,所以

16、采用ARM7+FPGAARM7+FPGA的結構的結構 。 lARMARM芯片價格低廉。芯片價格低廉。 選擇處理器數控系統(tǒng)處理器 16 操作系統(tǒng)平臺的選取 l通用操作系統(tǒng)通用操作系統(tǒng) l(window unix/linux(window unix/linux) )本質上是不可預測的,導致實時處理本質上是不可預測的,導致實時處理 的不可靠性(即使是相對較慢,計算簡單的任務)。通用系的不可靠性(即使是相對較慢,計算簡單的任務)。通用系 統(tǒng)都是多任務系統(tǒng),意味著它們允許計算機同時運行幾個進統(tǒng)都是多任務系統(tǒng),意味著它們允許計算機同時運行幾個進 程。它們通過分時技術允許多個任務并發(fā),在所有活動任務程。它們

17、通過分時技術允許多個任務并發(fā),在所有活動任務 間分配資源。分時的一個直接后果是實時精度不能保證,間分配資源。分時的一個直接后果是實時精度不能保證, l很多時候,程序員使用軟件中斷滿足任務的最后期限,這就很多時候,程序員使用軟件中斷滿足任務的最后期限,這就 是強迫操作系統(tǒng)在一個給定的時間響應中斷并提供服務,然是強迫操作系統(tǒng)在一個給定的時間響應中斷并提供服務,然 而由于中斷的分辨率很低(如而由于中斷的分辨率很低(如linuxlinux是是100hz100hz),這個方法只),這個方法只 在任務實時性較低的情況下使用(也就是說任務的速率比中在任務實時性較低的情況下使用(也就是說任務的速率比中 斷的速

18、率還要低)。還有就是對操作系統(tǒng)底層的修改,如提斷的速率還要低)。還有就是對操作系統(tǒng)底層的修改,如提 高中斷頻率,改變任務的優(yōu)先級等方法可以提高一些操作系高中斷頻率,改變任務的優(yōu)先級等方法可以提高一些操作系 統(tǒng)的實時精度,但是這樣的改變對操作系統(tǒng)的性能有一定的統(tǒng)的實時精度,但是這樣的改變對操作系統(tǒng)的性能有一定的 損壞。損壞。 17 l實時操作系統(tǒng)實時操作系統(tǒng) l專用實時系統(tǒng)專用實時系統(tǒng)VxWorksVxWorks ,Window CE QNX Window CE QNX , REAL/IXREAL/IX等。等。RTOSRTOS費用很高,費用很高, l開放源碼的實時系統(tǒng)開放源碼的實時系統(tǒng) rtai

19、 ,rtlinux ucosrtai ,rtlinux ucos lDOSDOS,許多控制系統(tǒng)包括數控系統(tǒng)仍然使用,許多控制系統(tǒng)包括數控系統(tǒng)仍然使用 DOSDOS。DOSDOS之所以能夠保證系統(tǒng)的實時性,只之所以能夠保證系統(tǒng)的實時性,只 是因為它不是多任務系統(tǒng)是因為它不是多任務系統(tǒng)它每次只執(zhí)行它每次只執(zhí)行 一個任務。一個任務。DOSDOS只專注于一個任務,這樣可只專注于一個任務,這樣可 以保證任務的實時性以保證任務的實時性。 操作系統(tǒng)平臺的選取 18 ucosII ucosII的理由的理由 lucosIIucosII是個實時多任務操作系統(tǒng)是個實時多任務操作系統(tǒng) l是個開放源碼降低開發(fā)費用,如是

20、個開放源碼降低開發(fā)費用,如 果選擇專業(yè)操作系統(tǒng),費用高果選擇專業(yè)操作系統(tǒng),費用高 l有強有力的支持(這一點是選擇這個有強有力的支持(這一點是選擇這個 系統(tǒng)很重要的原因)系統(tǒng)很重要的原因) 操作系統(tǒng)平臺的選取 19 數控系統(tǒng)設計 l數控系統(tǒng)設計與開發(fā)數控系統(tǒng)設計與開發(fā) l定義系統(tǒng)總體結構定義系統(tǒng)總體結構 l定義軟件總體結構定義軟件總體結構 l軟硬件協(xié)同設計軟硬件協(xié)同設計 l定義軟件模塊定義軟件模塊 l任務設計任務設計 20 數控系統(tǒng)設計定義系統(tǒng)結構 l數控系統(tǒng)總體結構數控系統(tǒng)總體結構 l采用處理器設計模式采用處理器設計模式 l系統(tǒng)采用單一處理器結構系統(tǒng)采用單一處理器結構ARMARM l系統(tǒng)系統(tǒng)A

21、RM+FPGAARM+FPGA實現整個硬件系統(tǒng)實現整個硬件系統(tǒng) 21 數控系統(tǒng)設計定義軟件總體結構 l數控系統(tǒng)軟件總體結構數控系統(tǒng)軟件總體結構 l軟件采用任務設計模式和功能協(xié)調模式相軟件采用任務設計模式和功能協(xié)調模式相 結合的軟件結構結合的軟件結構 l任務內部采用有限狀態(tài)機的設計模式任務內部采用有限狀態(tài)機的設計模式 22 數控系統(tǒng)設計軟硬件協(xié)同設計 l軟硬件協(xié)同設計軟硬件協(xié)同設計 l一旦軟件結構確定了,硬件和軟件工作組在一一旦軟件結構確定了,硬件和軟件工作組在一 起工作確定軟件和相關的功能。起工作確定軟件和相關的功能。 l這個過程是指軟件和硬件工作組一起工作定義這個過程是指軟件和硬件工作組一起

22、工作定義 最終系統(tǒng)結構最終系統(tǒng)結構. .這是一個迭代的過程,系統(tǒng)結這是一個迭代的過程,系統(tǒng)結 構的改變有時會改變軟件和硬件的結構構的改變有時會改變軟件和硬件的結構. . 23 數控系統(tǒng)設計定義軟件模塊 l定義軟件模塊定義軟件模塊 l確定系統(tǒng)需要支持的所有功能確定系統(tǒng)需要支持的所有功能. . l基于實現的工作類型分組基于實現的工作類型分組. .把執(zhí)行同一功能的把執(zhí)行同一功能的 模塊歸為一個任務模塊歸為一個任務. .例如人機界面,譯碼,插例如人機界面,譯碼,插 補,伺服等補,伺服等. . 24 數控系統(tǒng)設計數控系統(tǒng)任務模塊 l數控系統(tǒng)任務模塊數控系統(tǒng)任務模塊 l人機界面顯示,操作,控制功能人機界面

23、顯示,操作,控制功能 l譯碼模塊把數控代碼翻譯成可識別的結構譯碼模塊把數控代碼翻譯成可識別的結構 l插補模塊把數據點細化插補模塊把數據點細化 l伺服模塊生成脈沖指令控制電機伺服模塊生成脈沖指令控制電機 l總控模塊協(xié)調各個模塊之間的關系總控模塊協(xié)調各個模塊之間的關系 l邏輯模塊處理邏輯模塊處理IOIO口口 25 數控系統(tǒng)設計數控系統(tǒng)任務模塊 OSTaskCreate(Frame_Task, (void *)0, (OS_STK *)/ 1 OSTaskCreate(Interp_Task, (void *)0, (OS_STK *)/ 1 OSTaskCreate(Decode_Task, (v

24、oid *)0, (OS_STK *)/ 1 OSTaskCreate(Display_Task, (void *)0, (OS_STK *)/ 1 OSTaskCreate(Logic_Task, (void *)0, (OS_STK *)/ 1 26 數控系統(tǒng)設計任務設計 l數控系統(tǒng)任務設計指南 l不要引入很多狀態(tài)使設計復雜化不要引入很多狀態(tài)使設計復雜化. . l不要使用太少的狀態(tài)使設計復雜化不要使用太少的狀態(tài)使設計復雜化. . l使數據結構定義簡單使數據結構定義簡單. . l處理存儲越界的情況處理存儲越界的情況. . l考慮所有定義的場景考慮所有定義的場景. . l確保所有分配的資源在結

25、束時釋放確保所有分配的資源在結束時釋放. . l考慮使用層次狀態(tài)機簡化狀態(tài)機設計考慮使用層次狀態(tài)機簡化狀態(tài)機設計. . 27 數控系統(tǒng)設計任務設計 l選擇任務類型選擇任務類型 l單個狀態(tài)機單個狀態(tài)機 l多個任務多個任務 l選擇狀態(tài)機選擇狀態(tài)機 l簡單狀態(tài)機簡單狀態(tài)機 28 數控系統(tǒng)設計任務設計 l分配優(yōu)先級,由于采用分配優(yōu)先級,由于采用ucosucos操作系統(tǒng),操作系統(tǒng)采操作系統(tǒng),操作系統(tǒng)采 用基于優(yōu)先權可搶占的調度方式用基于優(yōu)先權可搶占的調度方式 l采用靜態(tài)固定分配,優(yōu)先級與周期成反比,周期采用靜態(tài)固定分配,優(yōu)先級與周期成反比,周期 越短優(yōu)先級越高。非周期性任務則按照重要性分越短優(yōu)先級越高。

26、非周期性任務則按照重要性分 配,重要性越高優(yōu)先級越高配,重要性越高優(yōu)先級越高 l系統(tǒng)的優(yōu)先級分配情況如下:伺服最高,插補次系統(tǒng)的優(yōu)先級分配情況如下:伺服最高,插補次 之,邏輯處理次之,譯碼次之,人機界面最低之,邏輯處理次之,譯碼次之,人機界面最低 29 數控系統(tǒng)設計任務之間通訊 l任務間通訊任務間通訊 lucosucos-II-II提供郵箱,消息隊列,全局變量,共享提供郵箱,消息隊列,全局變量,共享 內存的方式提供任務間通訊內存的方式提供任務間通訊 l各種通訊方式的比較各種通訊方式的比較 l郵箱郵箱 l消息隊列消息隊列 l全局變量全局變量 l共享內存共享內存 l共享內存是最快的通訊方式共享內存

27、是最快的通訊方式 30 數控系統(tǒng)設計共享內存 lOSMemCreate()創(chuàng)建內存()創(chuàng)建內存 lvoid initCNCMem(void) lINT8U err; lpCNCMem=OSMemCreate(CNCMemPart, CNCMemSize, CNCblkSize, lif(pCNCMem=NULL) lUart_Printf(Failed to Create CNC Message quote); l l lOSMemGet()獲得內存()獲得內存 lvoid initManual_data(void) l INT8U err; lmanual_data= (MANUALDATA

28、 * )OSMemGet(pCNCMem, l / end initManual_data 31 數控系統(tǒng)設計共享內存 任務1任務2 任務3 全局變量表 局部變量表 局部變量表 TM4 TM3 TM1 TM2 32 數控系統(tǒng)設計共享內存 局部變量表數據結構 全局變量表數據結構 GIFitem1 name GIF_nvar GIF_size GIF_time GIF_lock GIF_dirt GIF_first GIF_last GIFitem3 GIFitem2 GIFitemn next GIF_type GIF_ts GIF_next GIF_spot 到下一個元素 gdata_spot

29、 qdata_spot ldata_type ditem2 ditemn . ldata_type gdata_spot ditem1 litemn itemVarCopyToG size time gptr literm1 litem2 . itemPCopyToG qitemn itemVarCopyFromG itemPCopyFromG 存放數據 的內存區(qū) 數據項 nvar name 33 數控系統(tǒng)設計同步 方法:方法: 關中斷關中斷/開中斷開中斷 l OS_ENTER_CRITICAL(); l do stuff l OS_EXIT_CRITICAL(); 信號量信號量 lvoid

30、OSSemPend(OS_EVENT *pevent, INT16U timeout, INT8U *err); lINT8U OSSemPost(OS_EVENT *pevent); 互斥量互斥量 lvoid OSMutexPend(OS_EVENT *pevent, INT16U timeout, INT8U *err); lINT8U OSMutexPost(OS_EVENT *pevent); 全局變量全局變量 lbool XXXflag=0 lIf(xxxflag=0) if(xxxflag=1) lDo stuff; do stuff; lxxxflag=1; xxxflag=0

31、l 34 數控系統(tǒng)設計同步 l優(yōu)先級逆轉優(yōu)先級逆轉 l一般是在兩個任務訪問共享數據時出現,為了保證數據的一一般是在兩個任務訪問共享數據時出現,為了保證數據的一 致性,這兩個訪問必須串行,如果優(yōu)先級高的任務首先獲得致性,這兩個訪問必須串行,如果優(yōu)先級高的任務首先獲得 訪問權,則優(yōu)先級的順序保持一致,如果優(yōu)先級低的任務首訪問權,則優(yōu)先級的順序保持一致,如果優(yōu)先級低的任務首 先獲得訪問權,這時優(yōu)先級高的任務請求訪問,則優(yōu)先級高先獲得訪問權,這時優(yōu)先級高的任務請求訪問,則優(yōu)先級高 的任務必須等到優(yōu)先級低的任務完成訪問為止的任務必須等到優(yōu)先級低的任務完成訪問為止 l解決方法解決方法 l優(yōu)先級繼承優(yōu)先級繼

32、承 l優(yōu)先級上界優(yōu)先級上界 35 數控系統(tǒng)設計執(zhí)行時間的測量 l時間測量時間測量 l主要目的是測量單個任務的執(zhí)行時間主要目的是測量單個任務的執(zhí)行時間 l評估系統(tǒng)的整個實時性能評估系統(tǒng)的整個實時性能 l精確的實時調度分析精確的實時調度分析 l優(yōu)化代碼優(yōu)化代碼 l調試時間錯誤調試時間錯誤 36 數控系統(tǒng)設計執(zhí)行時間的測量 l方法:方法: l秒表秒表 lDateDate lTimeTime lprofprof和和gprofgprof l軟件分析儀軟件分析儀 l定時器定時器/ /定時器時間片定時器時間片 l邏輯分析儀邏輯分析儀 37 數控系統(tǒng)設計執(zhí)行時間的測量 方法方法分辨率分辨率精度精度粒度粒度使用

33、難度使用難度 秒表秒表0.01sec0.5sec程序程序容易容易 date0.02sec0.2sec程序程序容易容易 time0.02sec0.2sec程序程序容易容易 Prof和和gprof10msec10msec函數函數中等中等 clock15-30msec15-30msec行行中等中等 軟件分析儀軟件分析儀10usec20usec函數函數中等中等 定時器定時器/時間時間 片片 0.5-4usec1-8usec行行難難 邏輯分析儀邏輯分析儀 /ICE 50nsec半秒半秒行行難難 38 數控系統(tǒng)設計clock linclude “time.h” lOS_EXT volatile INT32

34、U OSTime; /* Current value of system time (in ticks) */ INT32U start,finish; double totla start=OSTime; Do stuff finish=OSTime; total=(double ) (finish-start)/(double) CLK_TCK Uart_printf(“Total=%fn”,total”); 39 數控系統(tǒng)開發(fā)周期任務的實現 ucosII的任務是個無限循環(huán)不是周期任務的任務是個無限循環(huán)不是周期任務 Void task(void *prio) for(;) Do stuff

35、 利用利用OSTimeTickHook()函數實現周期性函數()函數實現周期性函數,不過只能不過只能 實現實現ticks整數倍的周期任務整數倍的周期任務 40 數控系統(tǒng)開發(fā)周期任務的實現 void task(void *prio) l for(;) lOSTaskSuspend( pri); l Do stuff; l l int periodic=0; OSTimeTickHook()() periodic+; if(periodic=n) /任務周期任務周期n*ticks OSTaskResume(pri) 41 設計原則越簡單越好 l系統(tǒng)詳細設計指南系統(tǒng)詳細設計指南 l使用查找表和指針函

36、數而不是使用查找表和指針函數而不是if else or switch if else or switch l使用固定大小的數組使用固定大小的數組 l避免動態(tài)分配內存避免動態(tài)分配內存 l降低系統(tǒng)中的任務數降低系統(tǒng)中的任務數 l避免任務互相依賴避免任務互相依賴 l避免多線程設計避免多線程設計 l避免一個大的循環(huán)避免一個大的循環(huán) l對經常執(zhí)行的部分進行優(yōu)化對經常執(zhí)行的部分進行優(yōu)化 l使用狀態(tài)機簡化設計使用狀態(tài)機簡化設計 l在開始對軟件進行優(yōu)化在開始對軟件進行優(yōu)化 l對時間進行測量對時間進行測量 l使用時間標記,避免運行定時器使用時間標記,避免運行定時器 42 設計原則越簡單越好 系統(tǒng)設計指南系統(tǒng)設計

37、指南 l在設計時要注意內存分析在設計時要注意內存分析 l避免使用循環(huán)延時而用系統(tǒng)提供的延時機制避免使用循環(huán)延時而用系統(tǒng)提供的延時機制 l降低消息握手次數降低消息握手次數 l簡化硬件結構簡化硬件結構 l優(yōu)先選用通用的計算平臺而不是特殊的平臺優(yōu)先選用通用的計算平臺而不是特殊的平臺 l不要使用具有所有權的協(xié)議和操作系統(tǒng)不要使用具有所有權的協(xié)議和操作系統(tǒng) l優(yōu)先購買硬件平臺而不是設計優(yōu)先購買硬件平臺而不是設計 l優(yōu)先考慮重用設計優(yōu)先考慮重用設計 l避免使用異類的硬件和軟件環(huán)境避免使用異類的硬件和軟件環(huán)境 l考慮硬件升級降低軟件的努力考慮硬件升級降低軟件的努力 l把配置系統(tǒng)參數減小到最小把配置系統(tǒng)參數減

38、小到最小 l“0 0或者或者1 1或者或者n”n”規(guī)則規(guī)則 43 設計原則查找表 lbool isServiceAllowed(TerminalType type, Service service) l bool allowed = false; l if (type = PLATINUM) l if (service = VOICE | service = HIGH_SPEED_DATA | service = FAX) l allowed = true; l l else if (type = GOLD) l if (service = VOICE | service = LOW_SPEE

39、D_DATA | service = FAX) l allowed = true; l l else if (type = SILVER) l if (service = LOW_SPEED_VOICE | service = LOW_SPEED_FAX) l allowed = true; l l l return allowed; l bool isServiceAllowed(TerminalType type, Service service) return (terminalServiceLookuptypeservice) 44 設計原則不使用大循環(huán) 任務2 任務3 任務1 l使用

40、適當的并行設計方法使用適當的并行設計方法 l非搶占周期或多速率執(zhí)行非搶占周期或多速率執(zhí)行 l搶占實時操作系統(tǒng)搶占實時操作系統(tǒng) l不用中斷模擬多任務不用中斷模擬多任務 45 設計原則時間標記 bool incrementLeakyCounter() bool overflow = false; /* This counter needs to be reset if the error counter has not been incremented for a long duration. The main objective is to catch a flurry of errors le

41、ading to counter overflow */ if (currentTime - lastIncrementTime) LEAK_PERIOD) counter = 0; lastIncrementTime = currentTime; counter+; if (counter OVERFLOW_THRESHOLD) overflow = true; return overflow; 46 數控系統(tǒng)開發(fā)導致系統(tǒng)崩潰的問題 l下面的軟件問題導致軟件崩潰下面的軟件問題導致軟件崩潰: : l無效的數組索引無效的數組索引 l沒有初始化的指針操作沒有初始化的指針操作 l沒有授權的沒有授權的

42、bufferbuffer操作操作 l非法的棧操作非法的棧操作 l無效的處理器操作無效的處理器操作 l無限循環(huán)無限循環(huán) 47 嵌入式數控系統(tǒng)原型樣機(2003年) 48 l系統(tǒng)應力測試系統(tǒng)應力測試 l功能干涉測試功能干涉測試 l干涉負載測試干涉負載測試 l應力負載測試應力負載測試 系統(tǒng)應力測試 49 系統(tǒng)測試功能干涉測試 功能功能自動自動手動手動MDI回零回零 自動自動測試測試11 自動運行自動運行 測試測試12 證明自動運行情況證明自動運行情況 下進入手動系統(tǒng)減下進入手動系統(tǒng)減 速到零進入暫停速到零進入暫停 測試測試13 證明自動運證明自動運 行情況下進行情況下進 入入MDI系統(tǒng)執(zhí)系統(tǒng)執(zhí) 行完

43、當前程行完當前程 序段停止序段停止 測試測試14 證明自動運行情況下進證明自動運行情況下進 入回零系統(tǒng)減速到零進入回零系統(tǒng)減速到零進 入暫停入暫停 手動手動測試測試21 證明手動運行情證明手動運行情 況下進入自動,況下進入自動, 進入自動方式進入自動方式 MDI測試測試31 回零回零測試測試41 50 l干涉測試過程 l一旦定下功能測試矩陣,需要從矩陣中定下詳細的一旦定下功能測試矩陣,需要從矩陣中定下詳細的 測試過程。測試過程分為兩類測試過程。測試過程分為兩類: : l簡單測試,只涉兩個功能間的干涉簡單測試,只涉兩個功能間的干涉 l負載測試,涉及多個功能間的干涉測試負載測試,涉及多個功能間的干

44、涉測試 功能干涉測試 51 l干涉負載負載測試可以從干涉矩陣中得到干涉負載負載測試可以從干涉矩陣中得到. .基本上是就不同的功基本上是就不同的功 能運行同時同一個負載。這里負載也許意味著通過腳本重復執(zhí)行能運行同時同一個負載。這里負載也許意味著通過腳本重復執(zhí)行 操作者命令,周期性重啟系統(tǒng)板等操作者命令,周期性重啟系統(tǒng)板等 l上面的矩陣可以是干涉負載測試最好的例子上面的矩陣可以是干涉負載測試最好的例子: : l整天運行自動運行同時整天運行自動運行同時MDIMDI命令命令. . l運行手動方式下執(zhí)行運行手動方式下執(zhí)行MDIMDI和自動運行等和自動運行等. . 干涉負載測試 52 l應力負載測試指南應

45、力負載測試指南 l過載系統(tǒng)過載系統(tǒng). . l在實際的環(huán)境中進行負載測試在實際的環(huán)境中進行負載測試. . l負載測試時負載隨時間不同而不同負載測試時負載隨時間不同而不同. . l測試同一時間到達的負載。測試同一時間到達的負載。 l測試具有不同服務時間的負載測試具有不同服務時間的負載. . l測試負載性能測試負載性能. . 應力負載測試 53 l譯碼任務過載,插補任務過載,伺服任務過載,中斷譯碼任務過載,插補任務過載,伺服任務過載,中斷 過載過載 l以上任一任務的過載都會引起系統(tǒng)向伺服電機發(fā)送脈以上任一任務的過載都會引起系統(tǒng)向伺服電機發(fā)送脈 沖的間斷,同時顯示刷新太慢。沖的間斷,同時顯示刷新太慢。

46、 數控系統(tǒng)應力負載測試 54 本節(jié)提要本節(jié)提要 嵌入式數控系統(tǒng)設計實例嵌入式數控系統(tǒng)設計實例 ARM MP3設計實例設計實例 55 設計實例設計實例基于基于ARM7MP3Player 要實現要實現MP3PlayerMP3Player主要有以下兩種方法:主要有以下兩種方法: 1 1、MCU + USBMCU + USB接口芯片接口芯片 + + 硬件解碼芯片硬件解碼芯片+ + 海量存儲芯海量存儲芯 片片 + + 音頻音頻DAC +DAC +耳機放大器;(實現參考耳機放大器;(實現參考UP-UP- MP3DIY2.00MP3DIY2.00學習板)學習板) 2 2、MCU + USBMCU + USB

47、接口芯片接口芯片 + + 軟件解碼算法軟件解碼算法 + + 海量存儲芯海量存儲芯 片片+ +音頻音頻DAC +DAC +耳機放大器;(實現參考耳機放大器;(實現參考UP-ARM UP-ARM MP3DIY1.00MP3DIY1.00學習板)學習板) 前者的前者的MCUMCU可以為可以為MCS-51MCS-51系列單片機系列單片機, ,(如(如AT89C51SND1AT89C51SND1) 后者為后者為ARM7ARM7體系結構的微控制器。(如體系結構的微控制器。(如S3C44B0XS3C44B0X) 56 基于基于ARM的的MP3播放器播放器 ARM微處 理器 SDRAM Nand Flash

48、Nor Flash 網卡芯片 音頻芯片 USB芯片 小鍵盤 電源 57 系統(tǒng)硬件方案實現系統(tǒng)硬件方案實現 基于基于S3C44B0XS3C44B0X微處理器微處理器 + + 軟件解碼算法的軟件解碼算法的 MP3PlayerMP3Player的硬件方案實現如下:的硬件方案實現如下: lS3C44B0XS3C44B0X最小系統(tǒng):最小系統(tǒng):CPUCPU、RAMRAM、ROMROM和電源、和電源、 復位、復位、JTAGJTAG。 l擴展部分:音頻擴展部分:音頻DACDAC、UARTUART、鍵盤、鍵盤、NAND NAND FLASHFLASH、USBUSB接口、以太網接口。接口、以太網接口。 58 實現

49、最小系統(tǒng)實現最小系統(tǒng) 1 1、S3C44B0XS3C44B0X的結構和特點:的結構和特點:S3C44B0XS3C44B0X微處理器是三星公司專微處理器是三星公司專 為手持設備和一般應用提供的高性價比的微控制器解決方案,為手持設備和一般應用提供的高性價比的微控制器解決方案, 它使用它使用ARM7TDMIARM7TDMI核,工作在核,工作在66MHz66MHz。 帶帶8KB8KB緩存的緩存的2.5V2.5V靜態(tài)靜態(tài)ARM7TDMI CPUARM7TDMI CPU核;核; 擴展內存控制器(擴展內存控制器(FP/FDO/SDRAMFP/FDO/SDRAM控制,片選邏輯);控制,片選邏輯); 2 2個通

50、用個通用DMADMA通道,通道,1 1個帶外部請求管腳的個帶外部請求管腳的DMADMA通道;通道; 71 71個通用個通用I/OI/O口,口,8 8個外部中斷資源;個外部中斷資源; 帶帶PLLPLL的片上時鐘發(fā)生器;的片上時鐘發(fā)生器; 8 8個內存?zhèn)€內存BankBank共可以尋址共可以尋址256MB256MB存儲空間;存儲空間; UART UART和和IISIIS總線接口;總線接口; 59 lS3C44B0XS3C44B0X豐富的內部資源,使得系統(tǒng)硬件設計大大簡化:豐富的內部資源,使得系統(tǒng)硬件設計大大簡化: 60 l時鐘和復位電路時鐘和復位電路 系統(tǒng)時鐘輸入由系統(tǒng)時鐘輸入由6MHz6MHz的外

51、部晶陣提供,由內部的外部晶陣提供,由內部PLLPLL電路倍頻至電路倍頻至66MHz66MHz, 供給供給CPUCPU運行。運行。 系統(tǒng)復位信號由系統(tǒng)復位信號由IMP811TIMP811T芯片提供,并且設計了芯片提供,并且設計了RESETRESET按鈕,可以在系按鈕,可以在系 統(tǒng)運行過程中隨時復位操作,便于系統(tǒng)調試。統(tǒng)運行過程中隨時復位操作,便于系統(tǒng)調試。 61 l系統(tǒng)初始配置和系統(tǒng)初始配置和JTAGJTAG調試接口:調試接口: 下面的電路圖中的下面的電路圖中的8 8個電阻分別為個電阻分別為JTAGJTAG上拉電阻和系統(tǒng)運行模式初始配上拉電阻和系統(tǒng)運行模式初始配 置的電阻,右邊的插座為置的電阻,

52、右邊的插座為14Pin JTAG14Pin JTAG調試插座,配合仿真器可以下載調試插座,配合仿真器可以下載 bootloaderbootloader代碼和調試應用程序。代碼和調試應用程序。 62 l系統(tǒng)總線和控制信號,系統(tǒng)總線和控制信號,RAMRAM的連接:的連接: 系統(tǒng)中所使用的系統(tǒng)中所使用的RAMRAM芯片芯片 與處理器的連接方式。與處理器的連接方式。 以前的以前的PC-133PC-133的計算機的計算機 內存芯片,型號為內存芯片,型號為 HY57V641620HY57V641620。 63 lROMROM的連接:的連接: ARMARM處理器最小系統(tǒng)中的處理器最小系統(tǒng)中的ROMROM 芯

53、片與處理器的連接方式。芯片與處理器的連接方式。 這里配置容量為這里配置容量為2MB2MB的的NOR NOR FLASH FLASH芯片,芯片, 型號為型號為AM29LV160AM29LV160。 64 l系統(tǒng)供電電源:系統(tǒng)供電電源: 系統(tǒng)中所用到電壓有系統(tǒng)中所用到電壓有3 3種:種:5v5v、3.3v3.3v和和2.5v2.5v。其中。其中5v5v為系統(tǒng)總電源,為系統(tǒng)總電源, 3.3v3.3v電壓供給系統(tǒng)外設接口,電壓供給系統(tǒng)外設接口,2.5v2.5v為處理器的內核電壓。為處理器的內核電壓。 65 l最小系統(tǒng)配置完成:最小系統(tǒng)配置完成: 到此為止,到此為止,S3C44B0XS3C44B0X的最

54、小系統(tǒng)已經可以運行了,這也是該的最小系統(tǒng)已經可以運行了,這也是該MP3MP3系統(tǒng)的系統(tǒng)的 運行的基礎,我們可以在這個系統(tǒng)上下載到系統(tǒng)的運行的基礎,我們可以在這個系統(tǒng)上下載到系統(tǒng)的ROMROM中,運行測試最中,運行測試最 小系統(tǒng)。小系統(tǒng)。 我們在對最小系統(tǒng)做到成竹在心之時,后面的我們在對最小系統(tǒng)做到成竹在心之時,后面的MP3PlayerMP3Player的實現工作定的實現工作定 會達到事半功倍的效果!會達到事半功倍的效果! 66 lNandNand Flash Flash存儲器:存儲器: NandNand Flash Flash存儲器存儲器 在系統(tǒng)中作為電子在系統(tǒng)中作為電子 硬盤使用,用來存硬盤使用,用來存 儲儲MP3MP3歌曲和應用歌曲和應用 程序。程序。 67 lUSBUSB通訊接口:通訊接口: USBUSB通訊接口采用飛利浦半導體公司生產的高性價比通訊接口采用飛利浦半導體公司生產的高性價比USB1.

溫馨提示

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

評論

0/150

提交評論