時間:2008-09-08 09:52:00來源:ronggang
圖2 CAN硬件接口電路原理圖[/align]
SJA1000的AD0至AD7是分時復用地址/數據線,與單片機的系統總線引腳P1.0 至P1.7相連作為單片機的外部擴展存儲器。SJA1000的INT腳與HSI.0腳相連,當中斷允許時,一旦有中斷發生,SJA1000的16腳INT就會被激活,出現一個由高電平到低電平的跳變,而80C196KC的外部中斷HSI.0接受這一中斷信號后,CPU隨即響應中斷,由執行其他任務轉向為執行該中斷任務。
上位機的CAN總線通信接口適配卡采用研華生產的pcl841板卡,pcl841能夠同時在兩套CAN網絡上運行,提供4 KB的基地址空間,提供16 MHz的CAN控制頻率。同時提供的庫函數有七個子程序可供調用:
1 caninitHW() 初始化CAN接口
2 canExitHW() 釋放CAN節點
3 canReset() 復位CAN控制器
4 canConfig() 設置CAN命令字
5 canNormalR~n() 設置CAN工作模式
6 canSendMsg() 發送數據楨
7 canReceiveMsg() 接受數據楨
通過調用這七個子程序,可以完成CAN總線通訊軟件的大部分工作,極大地降低了開發人員的工作難度,減小了工作量,縮短了開發周期。
5. 控制系統通訊的軟件實現
因為CAN控制器發送一個數據幀需要的時間是微秒級,補償系統控制周期的時序是毫秒級(20毫秒),而上位機中斷頻率最高不過幾秒,因此,每個智能節點的微處理器在外部中斷服務程序中接受上位機發來的信息,在主程序內不斷地向上位機傳輸數據信息,根據CAN協議ID標識符越低其優先權越高,所以通過定義不同的ID標識符使上位機比智能節點優先發送的數據。其主程序和外部中斷服務程序流程圖分別如圖3、圖4所示。
[align=center]
圖3 智能節點主程序流程圖[/align]
[align=center]
圖4 CAN通訊外中斷程序流程[/align]
通過反復調試,已把通信部分的程序做成了模塊,在實際系統中的應用良好。下面給出通信模塊程序的部分代碼(采用C96高級語言編寫),
main()
。
……
。狢R=0x001b; /*開始復位模式,開放接收、出錯、超載中斷,并置位
。狝CR=0x02; /*初始化接受代碼寄存器
*AMR=0xfd; /*初始化接受屏蔽寄存器
。狟TR0=0x00;
。狟TR1=0x14; /*確定波特率、同步跳轉寬度、位周期長度、采樣數目
。狾CR=0xaa; /*選擇輸出方式
。狢R=0x001a; /*初始化結束,SJA1000返回其工作模式
……
cansend:
temp2=*SR&0x04; /*查詢狀態寄存器
if(temp2==0x00)goto cansend;
sebuffer=(unsigned char*)0x800c;
*seid=0; /*發送數據的目的地
。猻edlc=i1; /*發送數據的數目
for(i1=0;i1<6;i1++)
{
*sebuffer=a[i1];
sebuffer++;
} /*送數據至發送緩沖區
。狢MR=0x05; /*發送數據
wait1:
temp2=*SR&0x00;
if(temp2==0x08)goto wait1 /*發送完畢否
callms( ); /*延時
goto cansend; /*繼續發送數據
}
6. 結 論
CAN通訊系統經過充分的調試在功率因素動態補償系統的控制和監測中取得實際的應用。實踐證明,CAN現場總線監控系統具有全數字化通訊、抗干擾能力強、實時性能好、測量及控制精度高的優點,所以它必將隨自動化監控系統的發展而被廣泛采用。
參考文獻
[1] 鄔寬明. CAN總線原理和應用系統設計. 北京:北京航空航天大學出版社,1996.
[2] 陽憲惠. 現場總線技術及其應用. 北京:清華大學出版社,1999.
[3] 蔡月明. 基于CAN總線的工業控制系統. 中國儀器儀表, 2001, 第5期:16-18.
標簽:
上一篇:無線模塊在安防行業中的應用
傳動網版權與免責聲明:凡本網注明[來源:傳動網]的所有文字、圖片、音視和視頻文件,版權均為傳動網(www.cdcst56.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-09-08
華為昇騰Atlas800iA2 910B服務器Deepsee...
2025-09-04
2025-08-06
2025-07-08
2025-06-30
2025-06-16