關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于MCP2510和CH375的CAN-USB接口卡設計

        基于MCP2510和CH375的CAN-USB接口卡設計

        作者: 時間:2007-08-22 來源:網絡 收藏

        摘要本文介紹了和CH的特點,設計了接口卡,并給出了詳細的電路原理圖及軟件流程圖,該卡可適用于各種CAN總線控制系統中。
        關鍵詞CH接口卡設計

        1. 引言

        CAN以其優良的性能,廣泛應用在嵌入式系統中,PC機有豐富的軟件和強大的功能,在工業網絡中,將PC機設計成CAN網絡的一個節點,方便數據處理等。

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

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

        2. 系統硬件設計

        設計CAN-USB接口卡,硬件方面需要USB接口芯片、CAN協議芯片和微處理器。系統的硬件框圖見圖1。

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

        圖1 系統的硬件框圖

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

        圖2

        由于CH375可輸出復位信號,微處理器可利用此復位信號,從而不需要其它專門復位電路。設計中還必須注意,CH375的晶振頻率必須為12MHz,筆者曾經接11.0592 MHz晶振時,系統不能正常工作,改為12MHz時,則可正常工作。

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

        圖3

        3. 下位機程序設計

        下位機程序的功能是,當接收到CAN報文,將此報文重新組成適合USB傳輸的數據包,并裝載到USB的發送緩沖區,而當從USB接收到數據包,則將此數據包重新組成適合CAN傳輸的幀。

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

        設計中,CAN報文采用了標準11位ID,并且根據CAN幀格式,在單片機內存中,定義CAN報文發送緩沖區和接收緩沖區。

        雖然CH375的端點每次最大可傳輸64字節,但為了設計方便,我們設計成每次只傳輸11個字節,用如下的結構體表示。

        struct struct_USB

        {

        unsigned char USB_cmd;

        unsigned char Dat[10];

        };

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

        圖4 程序流程圖


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

        4.上位機程序設計

        上位機程序采用VB進行設計,由于沁恒公司為CH375提供了豐富的動態鏈接庫(API函數),在程序設計時,只需聲明和調用這些API函數,下面介紹編程注意事項。

        在程序設計時,程序中調用CH375的第一個API函數應為CH375的設備開啟函數,Declare Function CH375OpenDevice Lib "CH375DLL.DLL" (ByVal iIndex As Long) As Long,該函數的功能是打開CH375設備。關閉應用程序時,需調用設備關閉函數,Declare Sub CH375CloseDevice Lib "CH375DLL.DLL" (ByVal iIndex As Long),該函數的功能是關閉CH375設備。對于PC機向單片機發送數據和接收來自單片機的數據,只需調用相關的API函數即可。

        編寫完上位機程序,當CAN-USB接口卡通過USB連接線與PC機的USB接口相連之后,系統會檢測到新硬件,此時,安裝好驅動程序,就可以使用該設備。正常工作時,此卡中與CH375相連的LED亮。

        5. 結論

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

        參考文獻

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



        關鍵詞: CAN-USB 2510 MCP 375

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 武山县| 威宁| 麻城市| 岳普湖县| 忻州市| 五指山市| 白山市| 大荔县| 沛县| 安宁市| 廊坊市| 象州县| 高清| 临桂县| 海淀区| 故城县| 绥中县| 金门县| 汝州市| 霍邱县| 黄山市| 依安县| 右玉县| 葵青区| 历史| 田阳县| 东源县| 和林格尔县| 江山市| 滦南县| 三亚市| 通州区| 新丰县| 元江| 滨海县| 广元市| 舞钢市| 都江堰市| 仪征市| 余干县| 泸西县|