CAN控制器在深海測(cè)控中的應(yīng)用
遵循上述思路,筆者采用C51編寫了應(yīng)用軟件,下面是部分程序清單。
初始化部分:
voidCAN_Init(void)
{CANMODE=0x09;//進(jìn)入復(fù)位模式,單向驗(yàn)收濾波,對(duì)SJA1000初始化
CANCDR=0x88;//選擇PeilCAN模式
CANIER=0x1A;//開放接收中斷、超載中
由于深海測(cè)控系統(tǒng)對(duì)通信的實(shí)時(shí)性要求很高,一旦接收到甲板上傳來的控制命令就必須及時(shí)響應(yīng),為此從CAN總線上接收信息采用中斷方式。即SJA1000無錯(cuò)地接收到消息后使INT變?yōu)榈碗娖?,下降沿觸發(fā)C8051F020的外部中斷0,使其進(jìn)入中斷服務(wù)程序。其流程如圖3所所示。
如果要向CAN總線發(fā)送數(shù)據(jù),則必須將符合PeilCAN幀格式的一組數(shù)據(jù)寫入SJA1000的發(fā)送緩沖區(qū),然后調(diào)用發(fā)送子函數(shù)。這里筆者采用查詢方式來實(shí)現(xiàn)發(fā)送。流程如圖4所示。
4結(jié)束語
基于SJA1000型CAN控制器的深海測(cè)控系統(tǒng)基本上滿足了功耗低、體積小、重量輕、易擴(kuò)展的要求,同時(shí)與甲板上位機(jī)之間的通信可靠,完全能滿足深海探測(cè)的需要,并能廣泛應(yīng)用于海洋油、氣田作業(yè),海洋污染監(jiān)控和防治,海上漁業(yè)生產(chǎn)等,前景廣闊。
評(píng)論