時間:2009-01-19 11:54:44來源:ronggang
圖3[/align]
. 主程序采用模塊化編程。具有故障自診斷功能是虛擬儀表的重要特征之一,為此數據采集系統中設計了3組標準信號,分別是頻率信號、電壓信號和電阻信號,自檢模塊的主要功能是:當接收到上位機發出的自檢命令后,微控制器斷開傳感器輸入,標準信號被接入數據采集系統,將得到的數據上傳到上位機與標準值進行比較,以確定故障點是傳感器系統還是數據采集系統,若自檢通過則表示數據采集系統工作正常。數據發送模塊主要實現對上位機的數據通信,本系統設計為每隔20毫秒將數據分組發送到上位機。數據轉存模塊完成各種數據寫入在片主RAM的操作,為了區分數據類型,需要在數據塊中添加相應的類型標識碼,該碼由用戶層協議自行定義。A/D采樣模塊控制系統采樣過程,并將每一路12位采樣數據分兩次讀入指定的RAM單元中。
頻率信號處理模塊完成對捕獲端口頻率的測量,其基本思想是:在被測信號的一個周期時間內,2次脈沖下降沿分別啟動和停止定時器T2計數,兩次計數值之差的倒數即為頻率值,本模塊只需計算差值,頻率值由上位機解算。
3.1 CAN控制器編程
本系統軟件設計的一個難點在于關于CAN的編程。本系統處理的CAN程序模塊有:CAN初始化子程序、CAN中斷程序和CAN數據收發子程序。
CAN控制器是以CPU存儲器映像外圍設備出現的。P80C592的CPU與CAN控制器之間的數據傳輸通過4個特殊功能寄存器來實現,即: CANADR、CANCON、CANSTA和CANDAT,通過這四個特殊功能寄存器,CPU可以訪問CAN控制器內部的任一寄存器(地址為0~29)和DMA邏輯。表2給出了這四個SFR的功能簡述,其中CANCON和CANSTA的讀寫操作含義不同。CAN控制器內部所有寄存器詳細介紹請參閱參考文獻[1]。
[align=center]
表1[/align]
CAN控制器初始化(圖4)是CAN通信中一個非常重要的子程序,程序是否合理將直接影響整個通信過程。CAN控制器的初始化首先必須通過置位CAN控制寄存器的“復位請求”位,置位“復位請求”并不影響正在進行的一個收發作業,特別需要注意的是,只有當復位請求被置位時,CAN內部地址為4-8的寄存器方可被訪問,在復位操作結束后必須將該位置0以保持所進行的設置并使CAN返回工作狀態。
[align=center]
圖4[/align]
P80C592和其在片CAN控制器都具有中斷寄存器,必須注意兩者的區別。CAN中斷子程序(圖5)首先讀CAN中斷寄存器(IR)以判斷中斷類型,據此轉入相應的操作。如果接收緩存器滿而另一個報文的首字節又需要被存儲時,數據超限位被置位,此時應清除超限并釋放接收緩存,然后重新發送數據請求。在數據接受子程序中當數據被轉入RAM區后,應及時釋放接受緩存器,以便為接收下一幀數據做好準備。
[align=center]
圖5[/align]
[align=center]
圖6[/align]
數據發送子程序見圖6。CAN控制器向總線發送數據時,首先將在片主RAM中數據存放的首地址寫入CANSTA,然后讀取CANSTA.6的值(讀CANSTA的操作其實是對CAN控制器內部狀態寄存器的讀操作,CANSTA.6是錯誤顯示位,當至少有一個總線錯誤計數器計數達到CPU告警極限時,該位將被CAN控制器置位。),若檢測出錯,則執行CAN初始化子程序,若正常,則繼續檢測接收狀態和發送緩沖器狀態,若發送條件滿足則在CANADR中寫入發送緩存器地址并置位DMA控制位(MOV CANADR , 8AH),DMA傳送隨即被啟動,數據場由RAM拷貝到發送緩存器,置發送請求位(CANCON.0)后數據開始發送。
4 結束語
用高性能的P80C592和AD1674A數據采集模塊組成車輛環境數據采集系統具有較高的性價比,目前該系統已投入試用階段,運行狀況良好。CAN總線非常適合分布式控制或適時控制的串行通信網絡,本課題只涉及了數據采集,如果在此基礎上擴展車輛輔助控制和重要數據備份功能,系統將會有更廣闊的應用前景。
參考文獻:
[1] 鄔寬明. CAN總線原理和應用系統設計. 北京航空航天大學出版社. 1996
標簽:
上一篇:輕軌精整PLC智能控制系統
傳動網版權與免責聲明:凡本網注明[來源:傳動網]的所有文字、圖片、音視和視頻文件,版權均為傳動網(www.cdcst56.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-12-10
2025-11-20
2025-11-10
2025-11-10
2025-11-07
2025-10-31