基于“網(wǎng)絡(luò )通”的單片機以太網(wǎng)-CAN網(wǎng)關(guān)的應用
由于CAN總線(xiàn)傳輸的數據量不大,數據傳輸速率不高,遠小于以太網(wǎng)的數據傳輸速率,所以在以太網(wǎng) -CAN接口模塊中,數據的傳送瓶頸在CAN接口B。在測控領(lǐng)域,通常傳輸的數據量不大,對數據傳輸 速率要求也不高,于是,在此模塊中微處理器可選用通常的單片機如 8031等。
(3) CAN接口B
CAN接口B采用了飛利浦的CAN物理層和鏈路層接口芯片SJA1000和 PCA82C250。微處理器直接控制SJA1000的AD0~AD7、、、ALE、RST 和腳。SJA1000的MODEL腳接高電平,工作在Intel模式下;片選腳接地,始終處于選通狀態(tài),如 圖 3 所示。微處理器對 SJA1000的操作主要是對寄存器的操作:一方面對SJA1000的模式寄存器 (MOD)、命令寄存器(CMR)、狀態(tài)寄存器(SR)、中斷寄存器( IR)、中斷允許寄存器(IEP)、總線(xiàn)定時(shí)寄存器(BTR0、 BTR1)、輸出控制寄存器(OCR)、時(shí)鐘分頻計數器(CDR)進(jìn)行設置和檢測; 另一方面對收發(fā)緩沖區進(jìn)行讀寫(xiě),從而和CAN設備交換數據。
圖 4 是微處理器對SJA1000進(jìn)行初始化、讀、寫(xiě)的流程圖。微處理器將 以太網(wǎng)送來(lái)的命令通過(guò)向SJA1000寫(xiě),來(lái)傳送給CAN測控設備;反過(guò)來(lái),又將向SJA1000讀取CAN 測控設備的測量值或狀態(tài),通過(guò)以太網(wǎng)發(fā)送出去。
圖4 微處理器CAN接口原理圖
評論