當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]本文介紹了MCP2510和CH375的特點(diǎn),設(shè)計(jì)了CAN-USB接口卡,并給出了詳細(xì)的電路原理圖及軟件流程圖,該卡可適用于各種CAN總線控制系統(tǒng)中。

摘要   本文介紹了MCP2510和CH375的特點(diǎn),設(shè)計(jì)了CAN-USB接口卡,并給出了詳細(xì)的電路原理圖及軟件流程圖,該卡可適用于各種CAN總線控制系統(tǒng)中。
關(guān)鍵詞    MCP2510  CH375 CAN-USB接口卡設(shè)計(jì)

1. 引言

CAN以其優(yōu)良的性能,廣泛應(yīng)用在嵌入式系統(tǒng)中,PC機(jī)有豐富的軟件和強(qiáng)大的功能,在工業(yè)網(wǎng)絡(luò)中,將PC機(jī)設(shè)計(jì)成CAN網(wǎng)絡(luò)的一個(gè)節(jié)點(diǎn),方便數(shù)據(jù)處理等。

CAN網(wǎng)絡(luò)與PC機(jī)的連接可通過以下幾種方式:1)CAN-RS232接口卡;2)CAN-PCI接口卡;3)CAN-USB接口卡。CAN-RS232接口卡速度太慢,且不支持熱插拔;CAN-PCI接口卡雖然速度快,但不支持熱插拔。而采用CAN-USB接口卡,不但速度快,而且支持熱插拔,并且可以從系統(tǒng)中直接汲取電流而不需要外部供電。

[1][2]中所設(shè)計(jì)的CAN-USB接口卡,均采用SJA1000和PIDUSBD12, SJA1000為并行總線接口,與現(xiàn)在許多無外部總線的MCU不適應(yīng),PIDUSBD12也為并行總線接口,且與MCU的軟件接口編寫復(fù)雜,本文中設(shè)計(jì)的CAN-USB接口卡,USB接口芯片選擇南京沁恒電子有限公司生產(chǎn)的CH375,該芯片支持全速設(shè)備接口USB V1.1,該公司提供了完善的USB驅(qū)動(dòng)程序;并且該芯片內(nèi)部集成了USB 接口SIE、數(shù)據(jù)緩沖區(qū)、被動(dòng)并行接口、串行接口、命令解釋器、控制傳輸?shù)膮f(xié)議處理器、通用的固件程序等,這樣,以CH375設(shè)計(jì)的USB設(shè)備,不需要詳細(xì)了解USB 通訊協(xié)議,開發(fā)編程非常方便[ 3]。CAN協(xié)議芯片選擇MCP2510,該芯片采用SPI接口,連接方便,有3個(gè)發(fā)送緩沖區(qū),2個(gè)接收緩沖區(qū),寬工作電壓,低功耗[4]。

2. 系統(tǒng)硬件設(shè)計(jì)

設(shè)計(jì)CAN-USB接口卡,硬件方面需要USB接口芯片、CAN協(xié)議芯片和微處理器。系統(tǒng)的硬件框圖見圖1。

微處理器選擇華邦公司的W78E516,該芯片與MCS-51系列單片機(jī)兼容,內(nèi)部集成有64K的FLASH、看門狗、256字節(jié)輔助存儲(chǔ)器,還支持在系統(tǒng)可編程(ISP)。

圖1 系統(tǒng)的硬件框圖

CH375與MCU的連接提供了并行接口和串行接口,本文采用了并行接口,W78E516與CH375的接口電路如圖2所示。

              

  圖2

   由于CH375可輸出復(fù)位信號(hào),微處理器可利用此復(fù)位信號(hào),從而不需要其它專門復(fù)位電路。設(shè)計(jì)中還必須注意,CH375的晶振頻率必須為12MHz,筆者曾經(jīng)接11.0592 MHz晶振時(shí),系統(tǒng)不能正常工作,改為12MHz時(shí),則可正常工作。

   CAN協(xié)議芯片選擇MCP2510,總線驅(qū)動(dòng)器采用PCA82C250。設(shè)計(jì)如圖3所示。如果要求CAN總線上各節(jié)點(diǎn)間電氣隔離,可在MCP2510與PCA82C250之間加高速光隔離(如6N137)進(jìn)行電氣隔離,本文因版面限制而省略了光隔,光隔設(shè)計(jì)方法可參考文[5]。

圖3

3. 下位機(jī)程序設(shè)計(jì)

下位機(jī)程序的功能是,當(dāng)接收到CAN報(bào)文,將此報(bào)文重新組成適合USB傳輸?shù)臄?shù)據(jù)包,并裝載到USB的發(fā)送緩沖區(qū),而當(dāng)從USB接收到數(shù)據(jù)包,則將此數(shù)據(jù)包重新組成適合CAN傳輸?shù)膸?/P>

下位機(jī)程序設(shè)計(jì)采用Keil C進(jìn)行設(shè)計(jì),由于MCP2510是SPI接口,而W78E516沒有SPI接口,故編寫了專門操作SPI接口的程序。

設(shè)計(jì)中,CAN報(bào)文采用了標(biāo)準(zhǔn)11位ID,并且根據(jù)CAN幀格式,在單片機(jī)內(nèi)存中,定義CAN報(bào)文發(fā)送緩沖區(qū)和接收緩沖區(qū)。

雖然CH375的端點(diǎn)每次最大可傳輸64字節(jié),但為了設(shè)計(jì)方便,我們?cè)O(shè)計(jì)成每次只傳輸11個(gè)字節(jié),用如下的結(jié)構(gòu)體表示。

struct      struct_USB

{

       unsigned char USB_cmd;

       unsigned char Dat[10];

};

USB_cmd中指示每次數(shù)據(jù)包的含義,以方便PC機(jī)與單片機(jī)傳遞信息。Dat[10]為將傳輸?shù)紺AN總線上的數(shù)據(jù),或從CAN總線上接收到的數(shù)據(jù)。

圖4  程序流程圖


為防止通訊接收溢出,在設(shè)計(jì)中,為CAN和USB定義了比較大的數(shù)據(jù)緩沖區(qū),啟用了W78E516芯片上的256字節(jié)輔助存儲(chǔ)器,Keil C編譯時(shí)配置存儲(chǔ)器模式為Compact模式,但在設(shè)計(jì)中需要注意的是:main()函數(shù)的語句中,必須先用賦值語句對(duì)寄存器CHPENR和CHPCON進(jìn)行配置,啟用W78E516芯片上的256字節(jié)輔助存儲(chǔ)器,然后,才能執(zhí)行函數(shù)調(diào)用語句,否則程序雖在編譯時(shí)可通過,但運(yùn)行時(shí)會(huì)出現(xiàn)錯(cuò)誤。

4.上位機(jī)程序設(shè)計(jì)

上位機(jī)程序采用VB進(jìn)行設(shè)計(jì),由于沁恒公司為CH375提供了豐富的動(dòng)態(tài)鏈接庫(API函數(shù)),在程序設(shè)計(jì)時(shí),只需聲明和調(diào)用這些API函數(shù),下面介紹編程注意事項(xiàng)。

在程序設(shè)計(jì)時(shí),程序中調(diào)用CH375的第一個(gè)API函數(shù)應(yīng)為CH375的設(shè)備開啟函數(shù),Declare Function CH375OpenDevice Lib "CH375DLL.DLL" (ByVal iIndex As Long) As Long,該函數(shù)的功能是打開CH375設(shè)備。關(guān)閉應(yīng)用程序時(shí),需調(diào)用設(shè)備關(guān)閉函數(shù),Declare Sub CH375CloseDevice Lib "CH375DLL.DLL" (ByVal iIndex As Long),該函數(shù)的功能是關(guān)閉CH375設(shè)備。對(duì)于PC機(jī)向單片機(jī)發(fā)送數(shù)據(jù)和接收來自單片機(jī)的數(shù)據(jù),只需調(diào)用相關(guān)的API函數(shù)即可。

編寫完上位機(jī)程序,當(dāng)CAN-USB接口卡通過USB連接線與PC機(jī)的USB接口相連之后,系統(tǒng)會(huì)檢測(cè)到新硬件,此時(shí),安裝好驅(qū)動(dòng)程序,就可以使用該設(shè)備。正常工作時(shí),此卡中與CH375相連的LED亮。

5. 結(jié)論

本文作者創(chuàng)新點(diǎn)為采用CH375和MCP2510設(shè)計(jì)CAN-USB接口卡,給出了硬件電路圖和軟件流程圖,相對(duì)于其它用SJA1000和PIDUSBD12設(shè)計(jì)的類似產(chǎn)品,本CAN-USB接口卡的硬件接口簡(jiǎn)潔,軟件不需要編寫USB固件程序,開發(fā)效率高,性能價(jià)格比高,在實(shí)際使用中,效果良好。另外,由于硬件上采用了獨(dú)立的CAN控制器和USB接口芯片,軟件采用C語言設(shè)計(jì),所以移植到其它微處理器也比較方便。

參考文獻(xiàn)

[1] 張延宇,曹云俠.基于USB的CAN適配卡的設(shè)計(jì)與實(shí)現(xiàn),微計(jì)算機(jī)信息,2006 年第1-2 期:第6-8頁
[2] 朱騰,鄭建立.基于USB的CAN總線適配器的設(shè)計(jì), 微計(jì)算機(jī)信息,2005 年第3 期:第89-90頁
[3] CH375 說明書. 南京沁恒電子有限公司。
[4] MCP2510 datasheet, Microchip Technology Inc。
[5] 饒運(yùn)濤等.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù).北京航空航天大學(xué)出版社,2003.6

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉