基于“網(wǎng)絡(luò)通”的單片機以太網(wǎng)-CAN網(wǎng)關(guān)的應(yīng)用
由于CAN總線傳輸?shù)臄?shù)據(jù)量不大,數(shù)據(jù)傳輸速率不高,遠小于以太網(wǎng)的數(shù)據(jù)傳輸速率,所以在以太網(wǎng) -CAN接口模塊中,數(shù)據(jù)的傳送瓶頸在CAN接口B。在測控領(lǐng)域,通常傳輸?shù)臄?shù)據(jù)量不大,對數(shù)據(jù)傳輸 速率要求也不高,于是,在此模塊中微處理器可選用通常的單片機如 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)、總線定時寄存器(BTR0、 BTR1)、輸出控制寄存器(OCR)、時鐘分頻計數(shù)器(CDR)進行設(shè)置和檢測; 另一方面對收發(fā)緩沖區(qū)進行讀寫,從而和CAN設(shè)備交換數(shù)據(jù)。
圖 4 是微處理器對SJA1000進行初始化、讀、寫的流程圖。微處理器將 以太網(wǎng)送來的命令通過向SJA1000寫,來傳送給CAN測控設(shè)備;反過來,又將向SJA1000讀取CAN 測控設(shè)備的測量值或狀態(tài),通過以太網(wǎng)發(fā)送出去。
圖4 微處理器CAN接口原理圖
評論