如何設計基于DSP的分析儀器CAN網(wǎng)絡(luò )通信系統?
圖3 智能節點(diǎn)程序流程圖
本文引用地址:http://dyxdggzs.com/article/201808/385076.htm智能節點(diǎn)端CAN模塊初始化(流程圖如圖4所示[4])主要包括三個(gè)方面的內容:波特率的配置、郵箱分配(包括郵箱方向、標識符分配等)、中斷寄存器初始化。波特率和標識符的分配非常重要,是CAN網(wǎng)絡(luò )通信成功的關(guān)鍵所在。F2812內置CAN控制器使用位時(shí)序配置寄存器CANBTC中的BRP、TSEG1和TSEG2來(lái)設置波特率,計算公式為:SYSCLK/(BRP+1)×[(TSEG1reg+1)+(TSEG2reg+1)+1],此處我們采用的晶振頻率為30MHZ,系統倍頻為1/2,BRP=9,TSEG1=10,TSEG2=2,因此波特率為100Kbps。標識符就根據表1的描述來(lái)確定。

圖4 智能節點(diǎn)CAN模塊初始化流程圖
中斷程序中主要對從節點(diǎn)傳送的數據進(jìn)行處理,然后轉存到主節點(diǎn)的發(fā)送郵箱中,等待發(fā)送給上位機。在進(jìn)行數據處理的時(shí)候要把接收郵箱中的數據賦給中間變量,處理完后再把中間變量的值賦給發(fā)送郵箱,這個(gè)過(guò)程中要注意借助指針來(lái)完成。如下所示:
Mailbox = ECanaMboxes.MBOX0 + n; // n為郵箱號
receiveboxl = Mailbox->MDRL.all;
receiveboxh = Mailbox->MDRH.all;
3.2上位機端
PC機端主要完成對各分析平臺分析結果的采集、處理,采用適合快速開(kāi)發(fā)的面向對象高級語(yǔ)言VB來(lái)編寫(xiě)。KPCI-8110CAN適配卡提供.dll驅動(dòng)和.lib庫函數,通過(guò)在VB程序中調用相關(guān)的驅動(dòng)函數就可以實(shí)現CAN適配卡的配置和數據的讀寫(xiě)。數據的處理主要完成對各組分檢測結果中干擾背景氣的去除以及單位換算等工作。
上位機在接收主節點(diǎn)傳送過(guò)來(lái)的數據時(shí),在SJA1000 CAN控制器采用單濾波器模式,只接收在界面中輸入的組分的數據。濾波規則為:驗收代碼位(ACR.7-ACR.0)和信息識別碼(標識符)的高8位(ID.10-ID.3)相等,且與驗收屏蔽位(AMR.7-AMR.0)的相應位相或為1[5]。例如,在上位機接收界面中輸入組分名“co2”,運行程序時(shí)就會(huì )把“co2”對應的一組驗收代碼值和驗收屏蔽值初始化為驗收濾波器的預設值。為了具有通用性,把驗收屏蔽碼設為ACR xor HFF。
由于SJA1000CAN控制器每個(gè)地址存儲8位的數據,而F2812內置CAN控制器每個(gè)地址存儲16位的數據而且標準數據幀的標識符也不是從字節的起始位開(kāi)始的,所以定義標識符的時(shí)候要按照不同控制器的要求來(lái)定義。例如F2812內置CAN控制器定義數據幀標識符為1144 0000(bit28-bit18為標識符位),SJA1000獨立控制器對應的標識符應為8A20(bit15-bit5為標識符位)。.
下圖為自己開(kāi)發(fā)的接收界面成功接收到數據:

圖5 上位機接收界面
4 結論
該通信系統在試驗中得到了良好的效果,滿(mǎn)足了多組分分析儀器的設計要求。數字化在線(xiàn)分析儀器作為網(wǎng)絡(luò )神經(jīng)元,有機地融入網(wǎng)絡(luò )系統,實(shí)現信息實(shí)時(shí)傳輸、遠程故障診斷是分析儀器的發(fā)展趨勢,也是工業(yè)化和信息化的發(fā)展趨勢。
評論