CAN總線與USB的轉(zhuǎn)接技術(shù)
4 CAN控制器部分
CAN控制器SJA1000可以通過總線驅(qū)動器PCA82C250接收CAN總線上的信號,并將其傳送到微控制器,同時接收微控制器傳來的信號,然后通過驅(qū)動器再傳送到CAN總線。
由于SJA1000與CH372的地址/數(shù)據(jù)總線共用,故應通過片選加以區(qū)別。操作時可將地址鎖存管腳ALE/AS與單片機的ALE/P相連接,WR和RD管腳分別與單片機的WR、RD相連接。MODE管腳拉高則選用INTEL模式。應用時應將中斷管腳INT與AT89C52的INT1相連,并接外部中斷1,同時應接上拉10 kΩ電阻。電源與地之間應連接去耦電容。
SJA1000的TX0和RX0管腳分別與驅(qū)動器82C250的TX和RX相連接,可用于向CAN總線發(fā)送和接收數(shù)據(jù)。此時,需要將RX1管腳接到一個穩(wěn)定的電平上,并將系統(tǒng)中的RX1接地。
在CAN總線端,單片機控制著傳輸流程。SJA1000的初始化由單片機完成,其初始化流程圖見圖4所示,在正常工作模式下,單片機可控制SJA1000的收發(fā)等操作,以完成和CAN總線的通信。當主機端傳來數(shù)據(jù)時,單片機將數(shù)據(jù)轉(zhuǎn)發(fā)到SJA1000的發(fā)送緩沖區(qū),并由SJA1000根據(jù)CAN協(xié)議自動封裝后發(fā)送到CAN總線上;當SJA1000接收到來自CAN總線上的一個有效的報文后,系統(tǒng)將在INT引腳上產(chǎn)生一個硬件中斷信號(低有效),當單片機收到中斷信號后,即進人中斷服務(wù)程序,以完成數(shù)據(jù)的接收和處理,其中斷服務(wù)流程見圖5所示。
5 結(jié)束語
本文介紹的USB-CAN轉(zhuǎn)接系統(tǒng)可以實現(xiàn)預期的目標。它能夠?qū)崿F(xiàn)數(shù)據(jù)的傳輸,從而為CAN總線和PC機的連接提供了一個方便實用的USB接口。
評論