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