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