基于A(yíng)RM的CAN總線(xiàn)電纜溝道監測系統的設計
CON8插座是模擬傳感器的連接插座,24 V用于給模擬傳感器供電,信號輸出引腳直接連接到運放LF347輸入引腳。溫度傳感器輸出與被測溫度成線(xiàn)性的4~20 mA的電流信號。所以系統采用射隨器,先讓電流流過(guò)125 Ω電阻到地,將4~20 mA電流信號轉換成相對應0.5~2.5 V電壓。電壓輸入信號經(jīng)過(guò)射隨器,運放輸出的電壓信號大小不變,直接連接到LPC2292的A/D引腳。這樣下位機將數字、模擬傳感器各種信號經(jīng)A/D轉換器轉換采集后,打包通過(guò)CAN總線(xiàn)直接上傳到上位機,上位機再通過(guò)數值轉換,就可得到溝道中各種信息真實(shí)值。這種電流轉換電壓設計不僅簡(jiǎn)單,而且精度高,穩定性好。
5 CAN通信軟件設計
設計選用μC/OS-II嵌入式實(shí)時(shí)操作系統來(lái)實(shí)現CAN通信,在LPC2292上移植成功后,可用作為內核來(lái)編寫(xiě)監控系統的控制軟件。
5.1 運行μC/OS-II操作系統
工程的CAN實(shí)現主要通過(guò)建立兩個(gè)任務(wù)來(lái)實(shí)現,即CAN發(fā)送任務(wù)和CAN采集任務(wù)。在主函數main中先利用OSInit()初始化μC/OS-II操作系統,建立一個(gè)信號量并把信號計數器清零,然后利用OSTaskCreate()創(chuàng )建第一個(gè)任務(wù)Tasksend(),再通過(guò)OSStart()啟動(dòng)操作系統的多任務(wù)調度機制,開(kāi)始運行系統的主要應用程序。主函數代碼如下:
5.2 數據的收發(fā)
接收數據可采用查詢(xún)方式或中斷方式。為了提高效率,數據接收采用中斷方式。兩個(gè)任務(wù)中,設置任務(wù)Tasksend()的優(yōu)先級最高,任務(wù)Taskrev()的優(yōu)先級次高。任務(wù)Tasksend()主要負責初始化CAN,初始化定時(shí)器0,初始化VIC,建立信號量用于任務(wù)Taskadrev()與中斷通信并建立新的任務(wù)Taskrev(),并處理采集數據。任務(wù)Taskadrev()一直處于等待信號狀態(tài),一旦從中斷得到信號,立刻采集數據,并通過(guò)郵箱將采集到數據指針發(fā)給任務(wù)Tasksend()。
基于μC/OS-II的CAN接收數據、發(fā)送數據任務(wù)流程圖如圖5,6所示。
6 結語(yǔ)
以ARM7TDMI內核的嵌入式微控制器LPC2292作為主控制器、CAN總線(xiàn)作為數據傳輸方式通信的嵌入式系統得到了廣泛的應用,同時(shí)CAN通信的優(yōu)良可靠性也成為影響系統性能的關(guān)鍵。以L(fǎng)PC2292為開(kāi)發(fā)平臺,并且在成功地移植μC/OS-II的基礎上,研究CAN通信軟件設計。實(shí)驗結果說(shuō)明該系統設計可行,并且滿(mǎn)足了快速、準確、多信息量的要求。
評論