CAN總線與USB的轉接技術
發布時間:2010-07-30
中心議題:
USB總線就是一種新型、快速、雙向、同步傳輸、並可以熱插拔的數據傳輸總線,它滿足了人們對總線易用性、擴展能力強和低成本的要求,因此,USB在PC外設領域的傳輸速率從1.5Mbps的低速和12Mbps的全速提高到如今的480Mbps的高速數據傳輸。目前,USB總線已經逐漸成為計算機領域中應用最廣泛的外設總線連接規範。
與此同時CAN(ControllerAreaNetwork)zongxianjishuyeriquchengshu,qichuanshujuliyuan,chuanshusulvgao,kangganraonengliqiang,yiyuzuwang,erqiejieyuechengben,yibeigongrenweishizuiyouqiantudexianchangzongxianzhiyi,bingzaiguoneiwaikongzhilingyuhuodelepubianzhongshi。muqian,deguoxiandaiqichegongsiheouzhouqitajigezhuyaoqichegongsidecheneikongzhixitongquanbucaiyongCAN總線,國內的很多工業控製係統,(如車載控製係統、醫療控製係統和很多智能小區中的智能控製係統)都采用了CAN總線技術。隨著更加完善的CAN2.0B協議的提出,國外已有專家提出預言,CAN總線的應用壽命至少還有二十年。
雖然上述兩種總線的特點都比較突出,但二者在控製領域的應用仍有其自身局限性。USB的傳輸距離通常不超過幾十米,經常達不到工業應用的要求;而CAN適配器與主機在傳統接口上的連接十分繁瑣和複雜,不利於CAN的應用擴展。所以,本設計考慮將傳輸距離較遠的CAN總線技術與即插即用的USB接口技術相結合,即利用USB接口方便的實現CAN總線和主機的連接,從而有力的擴展了CAN總線的監控和管理功能,擴大CAN總線的應用範圍。
1接口模塊的總體設計
本文所介紹的USB-CAN轉接技術總體框圖如圖1所示,該設計分兩大部分:一是與主機USB接口相連的USB控製部分;二是與CAN總線相連的CAN控製器部分。兩者中間通過單片機聯係起來。USB控製部分用USB接口控製芯片CH372來實現數據的接收和發送;CAN控製器SJA1000用來實現CAN總線間的數據通信。單片機用來進行相應的控製、協調以及係統的通信。

2AT89C52在係統中的功能
單片機AT89C52在係統中主要起到一個橋梁和協調控製的作用。主機通過CH372把數據發送到單片機,單片機再把數據通過SJA1000發送到CAN總線,從而實現整個係統的通信。此外,單片機還需要對CH372和SJA1000進行初始化,並通過地址/數據以複用的方式訪問CH372和SJA1000。由(you)於(yu)在(zai)訪(fang)問(wen)其(qi)中(zhong)一(yi)個(ge)芯(xin)片(pian)時(shi),如(ru)果(guo)另(ling)一(yi)個(ge)芯(xin)片(pian)還(hai)保(bao)持(chi)有(you)輸(shu)出(chu),那(na)麼(me)單(dan)片(pian)機(ji)就(jiu)不(bu)能(neng)讀(du)到(dao)正(zheng)確(que)的(de)數(shu)據(ju),因(yin)此(ci),單(dan)片(pian)機(ji)要(yao)通(tong)過(guo)片(pian)選(xuan)控(kong)製(zhi)信(xin)號(hao)分(fen)配(pei)有(you)效(xiao)地(di)址(zhi)。單(dan)片(pian)機(ji)主(zhu)要(yao)通(tong)過(guo)主(zhu)循(xun)環(huan)來(lai)監(jian)控(kong)係(xi)統(tong)的(de)通(tong)信(xin),其(qi)主(zhu)循(xun)環(huan)流(liu)程(cheng)圖(tu)見(jian)圖(tu)2所示。[page]

3USB控製部分
USB控製部分使用USB接口控製芯片CH372來實現數據的接受和發送。CH372是一個USB總線的通用設備接口芯片,CH372在單片機端,具有8位數據總線和讀、寫、片選控製線以及中斷輸出,因此可以方便地掛接到單片機/DSP/MCU等控製器的係統總線上;在計算機係統中,CH372的配套軟件提供了簡潔易用的操作接口,因此,與本地端的單片機通訊就如同讀寫文件一樣簡單。
CH372在計算機端提供有應用層接口,應用層接口是由CH372動態鏈接庫DLL提供的麵向功能應用的API,所有API在調用後都會有操作狀態返回,但不一定有應答數據。CH372動態鏈接庫提供的API包括:設備管理API、數據傳輸API、中斷處理API等。
在zai應ying用yong層ceng設she計ji中zhong,筆bi者zhe采cai用yong的de是shi請qing求qiu加jia應ying答da的de方fang式shi。該gai方fang式shi使shi用yong一yi個ge下xia傳chuan的de主zhu動dong請qing求qiu和he一yi個ge上shang傳chuan的de被bei動dong應ying答da進jin行xing交jiao互hu式shi雙shuang向xiang數shu據ju通tong訊xun,下xia傳chuan與yu上shang傳chuan一yi一yi對dui應ying,相xiang互hu關guan聯lian。主zhu動dong請qing求qiu是shi指zhi由you計ji算suan機ji應ying用yong層ceng下xia傳chuan給gei單dan片pian機ji的de數shu據ju請qing求qiu,被bei動dong應ying答da則ze是shi單dan片pian機ji收shou到dao數shu據ju請qing求qiu後hou,上shang傳chuan給gei計ji算suan機ji應ying用yong層ceng的de應ying答da數shu據ju。所suo有you的de通tong訊xun都dou由you計ji算suan機ji應ying用yong層ceng發fa起qi,然ran後hou以yi接jie收shou到dao單dan片pian機ji的de應ying答da結jie束shu,其qi完wan整zheng的de過guo程cheng包bao括kuo如ru下xia步bu驟zhou:
(1)計算機應用層按事先約定的格式將數據請求發送給CH372芯片;
(2)CH372芯片以中斷方式通知單片機;
(3)單片機進入中斷服務程序,以獲取CH372的中斷狀態並分析;
(4)如果是上傳,則釋放當前USB緩衝區,然後退出中斷程序;
(5)如果是下傳,則從數據下傳緩衝區中讀取數據塊;
(6)分析接收到的數據塊,準備應答數據,或者先退出中斷程序再處理;
(7)單片機將應答數據寫入批量端點的上傳緩衝區,然後退出中斷程序;
(8)CH372芯片將應答數據返回給計算機;
(9)計算機應用層接收到應答數據。
在單片機端,CH372芯片占用兩個地址位,當A0引腳為高電平時,係統選擇命令端口,此時可以寫入命令;當A0引腳為低電平時,選擇數據端口,此時可以讀寫數據。單片機通過8位並口對CH372芯片進行讀寫時,所有操作都是由一個命令碼、若幹個輸人數據和若幹個輸出數據組成。
但部分命令不需要輸入數據,而部分命令也可以沒有輸出數據。
CH372芯片專門用於處理USB通訊。在接收到數據或發送完數據後,CH372將以中斷方式通知單片機進行處理。單片機通過CH372接收和發送數據的流程圖如圖3所示。
[page]
4CAN控製器部分
CAN控製器SJA1000可以通過總線驅動器PCA82C250接收CAN總線上的信號,並將其傳送到微控製器,同時接收微控製器傳來的信號,然後通過驅動器再傳送到CAN總線。
由於SJA1000與CH372的地址/數據總線共用,故應通過片選加以區別。操作時可將地址鎖存管腳ALE/AS與單片機的ALE/P相連接,WR和RD管腳分別與單片機的WR、RD相連接。MODE管腳拉高則選用INTEL模式。應用時應將中斷管腳INT與AT89C52的INT1相連,並接外部中斷1,同時應接上拉10kΩ電阻。電源與地之間應連接去耦電容。
SJA1000的TX0和RX0管腳分別與驅動器82C250的TX和RX相連接,可用於向CAN總線發送和接收數據。此時,需要將RX1管腳接到一個穩定的電平上,並將係統中的RX1接地。
在CAN總線端,單片機控製著傳輸流程。SJA1000的初始化由單片機完成,其初始化流程圖見圖4所示,在正常工作模式下,單片機可控製SJA1000的收發等操作,以完成和CAN總線的通信。當主機端傳來數據時,單片機將數據轉發到SJA1000的發送緩衝區,並由SJA1000根據CAN協議自動封裝後發送到CAN總線上;當SJA1000接收到來自CAN總線上的一個有效的報文後,係統將在INT引腳上產生一個硬件中斷信號(低有效),當單片機收到中斷信號後,即進人中斷服務程序,以完成數據的接收和處理,其中斷服務流程見圖5所示。

本文介紹的USB-CAN轉接係統可以實現預期的目標。它能夠實現數據的傳輸,從而為CAN總線和PC機的連接提供了一個方便實用的USB接口。
- USB-CAN接口模塊的總體設計
- 接口模塊的硬件設計方案
- 與主機USB接口相連的USB控製部分設計
- 與CAN總線相連的CAN控製器部分設計
USB總線就是一種新型、快速、雙向、同步傳輸、並可以熱插拔的數據傳輸總線,它滿足了人們對總線易用性、擴展能力強和低成本的要求,因此,USB在PC外設領域的傳輸速率從1.5Mbps的低速和12Mbps的全速提高到如今的480Mbps的高速數據傳輸。目前,USB總線已經逐漸成為計算機領域中應用最廣泛的外設總線連接規範。
與此同時CAN(ControllerAreaNetwork)zongxianjishuyeriquchengshu,qichuanshujuliyuan,chuanshusulvgao,kangganraonengliqiang,yiyuzuwang,erqiejieyuechengben,yibeigongrenweishizuiyouqiantudexianchangzongxianzhiyi,bingzaiguoneiwaikongzhilingyuhuodelepubianzhongshi。muqian,deguoxiandaiqichegongsiheouzhouqitajigezhuyaoqichegongsidecheneikongzhixitongquanbucaiyongCAN總線,國內的很多工業控製係統,(如車載控製係統、醫療控製係統和很多智能小區中的智能控製係統)都采用了CAN總線技術。隨著更加完善的CAN2.0B協議的提出,國外已有專家提出預言,CAN總線的應用壽命至少還有二十年。
雖然上述兩種總線的特點都比較突出,但二者在控製領域的應用仍有其自身局限性。USB的傳輸距離通常不超過幾十米,經常達不到工業應用的要求;而CAN適配器與主機在傳統接口上的連接十分繁瑣和複雜,不利於CAN的應用擴展。所以,本設計考慮將傳輸距離較遠的CAN總線技術與即插即用的USB接口技術相結合,即利用USB接口方便的實現CAN總線和主機的連接,從而有力的擴展了CAN總線的監控和管理功能,擴大CAN總線的應用範圍。
1接口模塊的總體設計
本文所介紹的USB-CAN轉接技術總體框圖如圖1所示,該設計分兩大部分:一是與主機USB接口相連的USB控製部分;二是與CAN總線相連的CAN控製器部分。兩者中間通過單片機聯係起來。USB控製部分用USB接口控製芯片CH372來實現數據的接收和發送;CAN控製器SJA1000用來實現CAN總線間的數據通信。單片機用來進行相應的控製、協調以及係統的通信。

2AT89C52在係統中的功能
單片機AT89C52在係統中主要起到一個橋梁和協調控製的作用。主機通過CH372把數據發送到單片機,單片機再把數據通過SJA1000發送到CAN總線,從而實現整個係統的通信。此外,單片機還需要對CH372和SJA1000進行初始化,並通過地址/數據以複用的方式訪問CH372和SJA1000。由(you)於(yu)在(zai)訪(fang)問(wen)其(qi)中(zhong)一(yi)個(ge)芯(xin)片(pian)時(shi),如(ru)果(guo)另(ling)一(yi)個(ge)芯(xin)片(pian)還(hai)保(bao)持(chi)有(you)輸(shu)出(chu),那(na)麼(me)單(dan)片(pian)機(ji)就(jiu)不(bu)能(neng)讀(du)到(dao)正(zheng)確(que)的(de)數(shu)據(ju),因(yin)此(ci),單(dan)片(pian)機(ji)要(yao)通(tong)過(guo)片(pian)選(xuan)控(kong)製(zhi)信(xin)號(hao)分(fen)配(pei)有(you)效(xiao)地(di)址(zhi)。單(dan)片(pian)機(ji)主(zhu)要(yao)通(tong)過(guo)主(zhu)循(xun)環(huan)來(lai)監(jian)控(kong)係(xi)統(tong)的(de)通(tong)信(xin),其(qi)主(zhu)循(xun)環(huan)流(liu)程(cheng)圖(tu)見(jian)圖(tu)2所示。[page]

3USB控製部分
USB控製部分使用USB接口控製芯片CH372來實現數據的接受和發送。CH372是一個USB總線的通用設備接口芯片,CH372在單片機端,具有8位數據總線和讀、寫、片選控製線以及中斷輸出,因此可以方便地掛接到單片機/DSP/MCU等控製器的係統總線上;在計算機係統中,CH372的配套軟件提供了簡潔易用的操作接口,因此,與本地端的單片機通訊就如同讀寫文件一樣簡單。
CH372在計算機端提供有應用層接口,應用層接口是由CH372動態鏈接庫DLL提供的麵向功能應用的API,所有API在調用後都會有操作狀態返回,但不一定有應答數據。CH372動態鏈接庫提供的API包括:設備管理API、數據傳輸API、中斷處理API等。
在zai應ying用yong層ceng設she計ji中zhong,筆bi者zhe采cai用yong的de是shi請qing求qiu加jia應ying答da的de方fang式shi。該gai方fang式shi使shi用yong一yi個ge下xia傳chuan的de主zhu動dong請qing求qiu和he一yi個ge上shang傳chuan的de被bei動dong應ying答da進jin行xing交jiao互hu式shi雙shuang向xiang數shu據ju通tong訊xun,下xia傳chuan與yu上shang傳chuan一yi一yi對dui應ying,相xiang互hu關guan聯lian。主zhu動dong請qing求qiu是shi指zhi由you計ji算suan機ji應ying用yong層ceng下xia傳chuan給gei單dan片pian機ji的de數shu據ju請qing求qiu,被bei動dong應ying答da則ze是shi單dan片pian機ji收shou到dao數shu據ju請qing求qiu後hou,上shang傳chuan給gei計ji算suan機ji應ying用yong層ceng的de應ying答da數shu據ju。所suo有you的de通tong訊xun都dou由you計ji算suan機ji應ying用yong層ceng發fa起qi,然ran後hou以yi接jie收shou到dao單dan片pian機ji的de應ying答da結jie束shu,其qi完wan整zheng的de過guo程cheng包bao括kuo如ru下xia步bu驟zhou:
(1)計算機應用層按事先約定的格式將數據請求發送給CH372芯片;
(2)CH372芯片以中斷方式通知單片機;
(3)單片機進入中斷服務程序,以獲取CH372的中斷狀態並分析;
(4)如果是上傳,則釋放當前USB緩衝區,然後退出中斷程序;
(5)如果是下傳,則從數據下傳緩衝區中讀取數據塊;
(6)分析接收到的數據塊,準備應答數據,或者先退出中斷程序再處理;
(7)單片機將應答數據寫入批量端點的上傳緩衝區,然後退出中斷程序;
(8)CH372芯片將應答數據返回給計算機;
(9)計算機應用層接收到應答數據。
在單片機端,CH372芯片占用兩個地址位,當A0引腳為高電平時,係統選擇命令端口,此時可以寫入命令;當A0引腳為低電平時,選擇數據端口,此時可以讀寫數據。單片機通過8位並口對CH372芯片進行讀寫時,所有操作都是由一個命令碼、若幹個輸人數據和若幹個輸出數據組成。
但部分命令不需要輸入數據,而部分命令也可以沒有輸出數據。
CH372芯片專門用於處理USB通訊。在接收到數據或發送完數據後,CH372將以中斷方式通知單片機進行處理。單片機通過CH372接收和發送數據的流程圖如圖3所示。
[page]4CAN控製器部分
CAN控製器SJA1000可以通過總線驅動器PCA82C250接收CAN總線上的信號,並將其傳送到微控製器,同時接收微控製器傳來的信號,然後通過驅動器再傳送到CAN總線。
由於SJA1000與CH372的地址/數據總線共用,故應通過片選加以區別。操作時可將地址鎖存管腳ALE/AS與單片機的ALE/P相連接,WR和RD管腳分別與單片機的WR、RD相連接。MODE管腳拉高則選用INTEL模式。應用時應將中斷管腳INT與AT89C52的INT1相連,並接外部中斷1,同時應接上拉10kΩ電阻。電源與地之間應連接去耦電容。
SJA1000的TX0和RX0管腳分別與驅動器82C250的TX和RX相連接,可用於向CAN總線發送和接收數據。此時,需要將RX1管腳接到一個穩定的電平上,並將係統中的RX1接地。
在CAN總線端,單片機控製著傳輸流程。SJA1000的初始化由單片機完成,其初始化流程圖見圖4所示,在正常工作模式下,單片機可控製SJA1000的收發等操作,以完成和CAN總線的通信。當主機端傳來數據時,單片機將數據轉發到SJA1000的發送緩衝區,並由SJA1000根據CAN協議自動封裝後發送到CAN總線上;當SJA1000接收到來自CAN總線上的一個有效的報文後,係統將在INT引腳上產生一個硬件中斷信號(低有效),當單片機收到中斷信號後,即進人中斷服務程序,以完成數據的接收和處理,其中斷服務流程見圖5所示。

本文介紹的USB-CAN轉接係統可以實現預期的目標。它能夠實現數據的傳輸,從而為CAN總線和PC機的連接提供了一個方便實用的USB接口。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 邊緣AI的發展為更智能、更可持續的技術鋪平道路
- 每台智能體PC,都是AI時代的新入口
- IAR作為Qt Group獨立BU攜兩項重磅汽車電子應用開發方案首秀北京車展
- 構建具有網絡彈性的嵌入式係統:來自行業領袖的洞見
- 數字化的線性穩壓器
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索






