在系統越來越復雜,功能越來越強大的今天,嵌入式系統的設計中采用實時多任務操作系統已經成為嵌入式應用設計的主流。μCOS-II是一個開源嵌入式實時操作系統(Real Time Operating System, RTOS),它已經被成功移植到各種CPU上。但是基于μCOS-II的應用軟件需要在移植操作系統后自行完成。模塊化的應用程序設計可以使得嵌入式設計變得更加方便,產品的開發更加迅速。S3C44B0是三星公司生產的一種ARM7芯片,性能強大,在通用嵌入式設計中運用廣泛。CAN總線(Control Area Network)是一種有效支持分布式控制和實時控制的現場總線,由于其高性能和高可靠性,CAN總線的應用范圍廣布過程工業、機器人和機械工業等領域。論文將μCOS-II移植到S3C44B0上,設計開發了基于μCOS-II的CAN通訊模塊,與傳統的前后臺形式的系統相比較,CAN總線在μCOS- II下運行,實時性更容易得到保證,更容易進行功能擴展。
1 S3C44BO簡介
S3C44B0是三星公司設計的16/32位RISC處理器,為手持設備等提供一個低成本高性能的方案。S3C44B0提供2.5V ARM7TDMI內核,最高時鐘頻率66MHz,總線尋址空間達到256M,采用中斷矢量表來減少中斷延遲,提供30個中斷源,支持C語言編程和多任務處理,具有豐富的片內資源:LCD控制器、2路UART、2路DMA、外部存儲器控制器、5路帶PWM輸出的定時器、看門狗、RTC、8路10bit ADC、IIC接口、IIS接口、SIO等等。
2 SJA1000和82C250簡介
SJA1000是一種獨立CAN控制器,它是PHILIPS公司的PCA82C200 CAN控制器的替代產品。SJA1000具有BasiCCAN和PeliCAN兩種工作方式,PeliCAN工作方式支持具有很多新特性的CAN2.0B 協議。SJA1000同時支持11位和29位識別碼,位速率最快可達1Mbits/s,時鐘頻率最高為24MHz,支持PeliCAN模式的擴展功能,如支持一些錯誤分析功能,支持系統診斷、系統維護、系統優化等。
82C250是PHILIPS公司生產的CAN總線收發器,提供對總線的差動發送和差動接收功能,另外還具有電流限制電路,提供了對總線的進一步保護功能。
3μCOS-II在S3C44B0上的移植
μCOS-II (micro-controller OS II)是一種開放式的操作系統內核,它是專為微控制器系統和軟件開發而設計的占先式的實時多任務操作系統微內核。μCOS-II是一個源碼公開、可移植、可固化、可剪裁、具可剝奪性、可確定性的實時多任務操作系統。它的絕大部分代碼是用ANSI C語言編寫的,只有和處理器相關的不到200行代碼是用匯編語言編寫,因此可移植性很好,比較容易移植到各種體系的CPU上面。本文中將μCOS-II移植到S3C44B0上面運行,該移植工作主要是三個文件的修改工作:
改頭文件OS_CPU.H相關內容,包括:數據類型定義、堆棧增長方向、中斷相關的一些宏定義等。
在OS_CPU_C.C中編寫任務堆棧初始化函數及系統HOOK函數。
在OS_CPU_A.ASM中編寫四個匯編語言函數:OSSstartHighRdy()、OSCtxSw()、OSINTCtxSw()和OSTickISR()。
完成上述工作后,μCOS-II就可以運行在S3C44B0處理器上了。
4 CAN總線智能節點的軟硬件結構
CAN總線是現場總線的一種,它結構簡單,通信方式靈活,采用非破壞性仲裁技術,通信采用短幀格式,從而可以形成低成本,高性能,實時性好的通訊系統。
4.1 CAN總線智能節點的硬件結構
用S3C44B0和SJA1000來實現CAN總線節點時,SJA1000采用地址數據復用的數據傳輸方式,而S3C44B0卻采用分開的地址總線與數據總線,因此,不能像51系列單片機和SJA-1000那樣直接相連,而必須另想辦法。將發送的地址和數據都從數據總線上發出,而用IO口和 nGCSx, nOE, nWE等信號來形成ALE信號和讀、寫、片選信號接到SJA1000,這樣就可以完成S3C44B0和SJA1000的連接,在硬件上形成CAN總線節點,同時為了保證信號不互相干擾,采用光耦6N137來進行隔離。另外,S3C44B0的3.3V信號和SJA1000的5V信號之間需要進行電平轉換。
4.2 CAN總線智能節點的軟件結構
采用BasicCAN模式,RX和TX緩沖器各是10個字節長,其中兩個ID字節和最多8個數據字節。其中ID字節1是8個ID位,ID字節2是3 個ID位,1個遠程發送請求位和4個數據長度代碼位。11位的ID能夠建立2032種報文類型,足夠普通應用的需求。ID位的規定可根據實際需要自行定義。
發送報文時調用CAN發送函數U8 BCAN_DATA_WRITE(U8 *SendDataBuf),其中*SendDataBuf指向要發的內容。在這個函數里,將報文內容按CAN接受緩沖器規定的格式填入,然后調用命令函數U8 BCAN_CMD_PRG(U8 cmd),其中cmd參數決定命令類型,選用發送數據命令將報文發送出去。
接收報文時調用CAN接收函數U8 BCAN_DATA_RECEIVE(U8 *RcvDataBuf),其中*RcvDataBuf是報文的存儲地址。在這個函數里,讀取接收緩沖區里的數據,并存到指定的位置。
這兩個函數只是發送與接收函數,具體的發送和接收需要建立相應的任務或中斷,并調用這兩個函數來完成。其中發送采用主動方式,當發送任務接到啟動發送的指令后調用CAN發送函數進行數據發送,接收采用中斷方式,CAN中斷的優先級高于時鐘中斷和其他任務。
節點通信流程圖如圖2所示:
5 基于μCOS-II的CAN總線通訊程序模塊的設計
傳統的前后臺方式設計的單片機程序是一個無限循環,循環中調用相應函數來完成相應操作是其后臺行為,而中斷服務程序處
理異步事件是其前臺行為。μCOS-II是一個實時多任務操作系統,是一個基于占先式內核的多任務調度平臺。作為一個模塊的CAN總線程序,在嵌入 μCOS-II之中,相對于前后臺方式而言,CPU的運行時間被μCOS-II依據調度算法按照不同的優先級分配給不同的任務模塊,各個任務程序在自己的運行時間內訪問CPU,這樣CAN總線的實時性更容易得到保證,同時各任務相對獨立,相互影響小,也便于對程序的調試,更重要的是如果要實現更為復雜的通訊協議時不用改變原有的程序結構,只需增加擴展部分的程序就可以進行功能擴展。
本文中CAN總線如上所述采用主動方式發送和采用中斷方式接收數據,CAN中斷優先級高于其他任務的優先級。本文中數據發送建立一個獨立任務,它擁有自己的堆棧空間,可以被其他的任務和中斷服務子程序掛起或刪除。這個任務分配128個OS_STK的堆棧空間,在μCOS-II中OS_STK被定義為一個字長。
系統建立了兩個任務(不包括統計和空閑任務):起始任務Main_Task和發送任務CANSENDDATA_Task,優先級分別為10,12。在CAN控制器初始化和OS初始化后,建立起始任務Main_Task,OS開始運行,進入起始任務Main_Task,起始任務啟動時間節拍,并創建發送任務,然后進入掛起。發送任務進入運行態,當發送數據完成后,發送任務掛起。
兩個任務在各自的延時結束后按照優先級先后進入運行態,若都在掛起狀態則系統的空閑任務進入運行。此過程中如果有接收中斷發生,則中斷服務將掛起正在運行的任務,并調用CAN數據接收函數,完成數據的接收,當此過程結束后恢復現場,繼續進行高優先級的任務。圖3是CAN通信模塊在μCOS-II中運行的系統結構框圖:
本文利用上述思想所設計的CAN總線智能節點與ZLG USBCAN-1型CAN總線開發設備互相通信正常,從圖4可以看到數據接收和發送的順利進行。
結束語
在S3C44B0上運行的μCOS-II中實現CAN總線智能節點,能夠克服傳統前后臺編程方法的弊端,并且提供模塊化、可移植性好、高實時性、易擴展的通信模塊,能夠大大減少產品的開發時間。
本文作者創新點:
一: 建立了S3C44B0和SJA1000的連接,使這兩種常用芯片得以配合使用。
二: 建立起基于S3C44B0和μCOS-II的CAN總線智能節點模塊,為以后在μCOS-II操作系統中的CAN總線應用打下了基礎。
參考文獻
[1] 鄔寬明. CAN總線原理與應用系統設計[M]. 北京航空航天大學出版社. 1996.
[2] Jean J. Labrosse 著. 邵貝貝等譯. μCOS-II嵌入式實時操作系統[M]. 北京航空航天大學出版社. 2003.
[3] 黃元峰,李育清,姜生元.基于μC/OS的嵌入式系統應用開發研究[J].微計算機信息(嵌入式與SOC),2006年第22卷第2-2期:100-102。
上一篇:基于ARM的Linux系統移植的方法
下一篇:基于ARM9和μC/OS-II操作系統的SD卡文件系統的設計與
推薦閱讀
史海拾趣
在電子行業的早期,ETC公司以其獨特的技術創新能力在晶體管市場上嶄露頭角。公司創始人帶領研發團隊,通過不斷的實驗和改進,成功研發出一種新型的MOSFET晶體管,具有更高的性能和更低的功耗。這一創新成果迅速在市場上引起轟動,ETC公司的知名度也隨之提升。隨著產品銷量的不斷增長,ETC逐漸在電子行業中確立了其領導地位。
90年代初期,“General Microcircuits”敏銳地捕捉到市場對定制化半導體解決方案的需求增長。公司迅速調整戰略,成立專門的定制化服務部門,為客戶提供從需求分析、設計開發到生產測試的全流程定制化服務。這種以客戶為中心的服務模式贏得了眾多客戶的青睞,尤其是在通信、汽車電子等高端應用領域,公司憑借定制化的高性能芯片解決方案占據了重要的市場份額。
為了保持技術創新的活力,Automatic Connector公司積極與高校和研究機構開展產學研合作。通過與這些機構的深度合作,公司能夠及時了解最新的科研成果和技術趨勢,為產品的研發和創新提供有力的支持。同時,公司還為合作機構提供實踐平臺和技術支持,實現了資源共享和互利共贏。這種產學研合作的模式為Automatic Connector公司的創新發展注入了強大的動力。
這五個故事雖然是以虛構的Automatic Connector公司為背景,但它們所反映的電子連接器制造企業的發展規律和市場環境是真實存在的。希望這些故事能夠為您了解電子行業中的企業發展提供一些啟示。
在電子行業的發展過程中,環保問題日益受到關注。Conexcon Group積極響應國家環保政策,將綠色環保理念貫穿于產品研發、生產和銷售的全過程。公司采用了環保材料和工藝,減少了對環境的污染和破壞。同時,公司還加強了廢舊電子產品的回收和處理工作,推動了電子行業的可持續發展。這些舉措不僅贏得了消費者的認可和支持,也為公司樹立了良好的社會形象。
Excelight非常重視企業文化建設。公司倡導“創新、協作、務實、進取”的企業精神,鼓勵員工勇于探索、敢于創新。同時,Excelight還為員工提供了良好的工作環境和福利待遇,吸引了大量優秀人才的加入。
在企業文化的影響下,Excelight的團隊凝聚力不斷增強,員工的積極性和創造力得到了充分發揮。這使得公司在面對市場變化和競爭挑戰時能夠迅速作出反應和調整。
1997年,Vishay正式進入分立半導體領域,收購了Lite-On Power Semiconductor公司65%的股份。這一舉措標志著Vishay在半導體技術上的重大突破。隨后,在1998年,Vishay又收購了TEMIC的半導體業務部分,包括特洛芬肯(Telefunken)和硅尼克斯(Siliconix)兩家公司的大部分股份。這些收購為Vishay帶來了先進的晶體管、二極管、光電子裝置等半導體技術,進一步鞏固了其在半導體領域的地位。
利用UART解決DSP與PC機間通信時速率匹配問題,并給出了具體實現電路。 關鍵詞:DSP UART 串行通信 FIFO DSP是一種專門用來實現信號處理算法的微處理器芯片,主要優點有:硬件乘法器,哈佛總線結構,多種尋址方式,零耗循環 ...… 查看全部問答∨ |
來源:窗戶紙 http://www.getproject.com.cn/post/98.html 機器人,聽起來挺神秘的,在大多數科幻電影和文學作品中,機器人通常無所不知,無所不能,跟人類相比起來,簡直就是完美無瑕了。因此,作品中的機器人,要么是人類的好朋友, ...… 查看全部問答∨ |
_delay_ms()這個延時到底有多準啊? 如果用計數器TNCT0計數,TNCT0的初始值為55,跳到255后溢出中斷, 選擇8分頻的時鐘源,F_CPU= 16M,10ms的時間TNCT0的溢出次數應該是100次 即TNCT0跳了100*(255-55)= 20000次。 問: _ ...… 查看全部問答∨ |
|
現在剛開始接觸FPGA不久,看了很長時間論壇了,也學習了Verilog,試著學習應用quartusii和modelsim,現在依舊感覺沒有多大進步,好像根本還沒有入門,簡單的仿真還能進行,遇到復雜點的,比如幾個模塊聯合編譯仿真就總是仿真失敗,也沒有找到原因! ...… 查看全部問答∨ |
|
【 信號處理】基于DSP+FPGA+ASIC的實時紅外圖像處理系統 隨著紅外焦平面陣列技術的快速發展,紅外成像系統實現了高幀頻、高分辨率、高可靠性及微型化,在目標跟蹤、智能交通監控中得到了越來越多的應用,并向更加廣泛的軍事及民用領域擴展。實時紅外圖像處理系統一般會包括非均勻校正、圖像增強、圖像分 ...… 查看全部問答∨ |
|
有幸得到一本《MCU工程師煉成記》 第一章 1.1 把iPhone變成一臺心電圖儀 文章十分精彩,利用右聲道作為MSP430系統電源輸出,左聲道和麥克風作為信號輸出和輸入,麥克風作為輸入好理解。 感覺耳機左右聲道的輸出信號應該是一致的,那 ...… 查看全部問答∨ |