《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于TMS320F2812和USB100的CAN-USB總線通信系統設計
基于TMS320F2812和USB100的CAN-USB總線通信系統設計
電子元器件應用
葉成,劉曉剛,劉春生
摘要: 摘要:介紹了一種基于DSP的CAN控制器和USB芯片的USB總線和CAN總線的通信模塊的設計,提出了一種使用USB接口實現CAN總線網絡與計算機連接的方案。利用USB100芯片可在不了解任何USB協議的情況下,完成計算機RS232串口
關鍵詞: DSP CAN USB TMS320F2812
Abstract:
Key words :

摘要:介紹了一種基于DSPCAN控制器和USB芯片的USB總線和CAN總線的通信模塊的設計,提出了一種使用USB接口實現CAN總線網絡與計算機連接的方案。利用USB100芯片可在不了解任何USB協議的情況下,完成計算機RS 232串口升級為USB接口,同時CAN接口采用DSP片上CAN控制器,硬件設計極為簡單。在DSP的控制下,PC機與CAN節點可以雙向通信,通信波特率可高達1 Mb/s,傳輸數據穩定,可靠。實驗證明,運用TMS320F2812片上eCAN模塊來構成CAN總線通信系統更為簡單,實用。
關鍵詞:USB;CAN總線;eCAN;TMS320F2812

0 引言
    隨著計算機技術的飛速發展,全電子的計算機連鎖控制系統由上位機,聯鎖機和智能執行單元三層結構組成。本文所介紹的模塊正是在此背景下為數據通信進行服務的。CAN總線是目前為止唯一有國際標準的現場總線,由于采用了許多新技術及獨特的設計,與一般的通信總線相比,它的數據通信具有突出的可靠性,實時性和靈活性,其應用范圍目前已不再局限于最初的汽車行業,而擴展到了機械工業包括數控機床,醫療器械,家用電器等領域。USB接口速度快、連線簡單和即插即用的特性是與上位機通訊非常好的外設接口。因此,基于USB接口實現CAN總線與PC機之間數據通信的研究具有一定的應用意義。

1 系統結構
    本系統主要是由USB接口和CAN接口等模塊組成,其中微處理器TMS320F2812控制全局,實現通過USB接口將CAN總線數據傳送給PC機,以及通過USB接口將PC機數據傳送給CAN節點的雙向通信功能。傳統的CAN總線通信模塊一般要用到獨立的CAN控制器芯片,本系統微處理器F2812片上帶有eCAN模塊,設計時較為方便,下面簡要介紹eCAN模塊。
    eCAN模塊是TMS320F2812 DSP片上的增強型CAN控制器,其性能較之已有的DSP內嵌CAN控制器有較大的提高,數據傳輸更加靈活方便,數據量更大、可靠性更高、功能更加完備。eCAN模塊它完全兼容CAN2.0B協議,可以在有干擾的環境里使用上述協議與其他控制器串行通信。除具有一般DSP內嵌CAN控制器的所有功能外,與TMS320LF240x系列DSP的CAN模塊相比,它主要具有如下的一些增強特性:增加了郵箱數量,多達32個;eCAN是一個32位的高級CAN控制器;具有時間標識;具有超時功能。
    以上這些增強特性使得TMS320F2812進行CAN通信時,傳輸更加方便靈活、數據量更大、功能更完備。圖1為系統結構圖。

1.JPG



2 系統硬件設計
2.1 USB模塊的硬件設計
    本系統USB接口模塊采用USB100模塊作為主控芯片。USB100模塊是USB通用設備接口芯片,具有8位數據總線接口,內部多達384 B的發送緩沖區和128 B的接收緩沖區,數據通信速率最高可達8 Mb/s,USB100模塊讀寫數據分別由RD和WR2個引腳控制,相當于有讀寫2個地址,因此將這兩個地址映射到F2812外設接口的區域xzcs01中,0x2000作為寫地址,0x4000作為讀地址,通過XA13,XA14,XZCS01,XWE,XRD5個管腳進行譯碼,即可方便地控制USB模塊的數據收發。選用altera公司的CPLD芯片EPM7032作為譯碼器件,可以進行在系統編程操作,其中上述5個管腳作為CPLD的輸入引腳,CPLD2個輸出引腳分別接至USB100模塊的RD和WR兩個引腳。由于USB100模塊是5 V供電,F2812是3.3 V供電,所以8位數據總線通過電平轉換器件741vc4245相連,數據方向由F2812的XR/W控制。根據USB100模塊時序圖,當F2812檢測到USB100模塊TXE引腳為低時,表示內部發送緩沖區允許發送數據到USB端口,可以將數據通過八位總線發給USB100模塊;當F2812檢測到USB100模塊RXF為低時,表示內部發送緩沖區有來自USB端口的數據。
2.2 eCAN模塊應用設計
    由于采用TMS320F2812片上增強型控制器eCAN,所以CAN模塊硬件電路極為簡單,只需將F2812的RX和TX引腳經過電平轉換器件連接至CAN收發器PCA82C250的TXD和RXD引腳,并以F2812作為CAN總線系統的微處理器,進行實時數據收發。其硬件系統分為2層:第一層,CAN總線與F2812接口層;第二層,F2812與外圍器件的信息處理。CAN收發器采用低廉的PCA82C250,系統的擴展性強,至少可連接110個節點,其引腳8(Rs)用于選擇工作模式,高速工作時上接一個斜率電阻,根據總線通信速度可適當調整,一般在16~140 Kb/s之間。

3 系統軟件設計
3.1 DSP程序設計
    本系統中,微處理器TMS320F2812主要完成2個功能:一是對eCAN控制器進行初始化;二是完成上位機USB接口和下位機CAN接口的數據通信。USB接口通信通過查詢USB100的TXE和RXF引腳的狀態來完成上位機與微處理器F2812的數據交換,CAN接口的通信主要包括eCAN模塊的消息發送和接收。
    F2812上電復位后,必須對軟件進行初始化,其中最重要的是對eCAN模塊初始化。消息發送時,需要初始化發送郵箱,包括向寄存器CANME使能相應郵箱、設置CANMD方向、通過MBOXn.MSGID(n=O~31)設置發送郵箱的ID等操作,初始化后向消息數據寄存器ECanaMboxes.Mboxn.MDR寫入上位機USB接口發送的數據,然后設置EcanaRegs.CANTRS.bit.TRSn為1請求發送消息,等待傳輸響應位TA=1,表示消息成功發送,并產生發送中斷,本系統通過發送中斷子程序統計發送消息個數。消息接收時,同樣需要初始化相應的接收郵箱,完成初始化后,當下位機通過CAN接口發送數據時,如果eCAN模塊的接收郵箱的ID與下位機消息的ID匹配,并成功接收,則相應的接收消息掛起寄存器(CANRMP)的相應位被置1;若CPU開放了eCAN接收中斷,則同時也產生接收消息中斷,在接收中斷子程序,可以將相應的消息數據寄存器的內容發給USB100模塊的寫地址,同時需要查詢USB100的TXE端是否允許向USB端口發送數據。
    上位機通過USB接口發送數據,下位機通過CAN接口接收數據基本步驟為:
    (1)F2812初始化通用IO口以及eCAN控制器;
    (2)F2812檢測USB模塊是否有來自上位機的數據;
    (3)若有,將數據讀入配置好的eCAN發送郵箱;
    (4)啟動配置好的eCAN發送郵箱;
    (5)當郵箱發送消息給下位機成功后,會進入eCAN發送中斷程序;
    (6)清除相應標志后退出中斷程序,繼續等待上位機發送數據。
    上位機通過USB接口接收數據,下位機通過CAN接口發送數據基本步驟為:
    (1)F2812初始化通用IO口以及eCAN控制器;
    (2)當下位機通過CAN接口發送數據時,根據郵箱標識符,已配置好的eCAN接收郵箱收到下位機數據,同時進入eCAN接收中斷子程序;
    (3)F2812檢測USB模塊內部緩沖區是否允許向上位機發送數據,若禁止,則等待;
    (4)若允許向上位機發送數據,則將數據寫入上位機;
    (5)清除相應標志后退出中斷程序,繼續等待下位機發送數據。圖2為系統軟件流程圖。

2.JPG


3.2 上位機軟件編寫
    采用NI公司的LABWINDOWS/CVI8.0進行上位機控制界面設計,實現通過PC機發送和接收CAN總線系統的數據的功能。
    由于USB100模塊將USB接口虛擬成了RS 232標準的串口,程序要實現的任務是調用WINDOWS下串口函數,使得用戶在CVI的界面下完成PC機數據的收發。該系統與PC機之間的通信主要通過調用LABWINDOWS/CVI函數庫中提供的RS 232函數庫,這幾個函數在設計驅動程序中具體實現。主要的函數有:配置串口函數:int OpenComConfig(int COMPort,char deviceName[],long baudRate,int parity,int dataBits,int stopBits,int inputQueueSize,int outputQueueSize);將字節寫入指定端口函數:int ComWrt(int COMPort,char buffer[],int count);從指定端口讀入字節函數:int ComRd(int COMPort,char buffer[],int count);在PC機上通過相應控件啟動相應端口函數,使得數據通過USB接口發送。

4 通信測試
    系統測試時,利用CAN調試器作為一個CAN節點,并利用調試器自帶的調試軟件在下位機上顯示。
    首先,進行上位機通過USB接口發送數據,下位機通過CAN接口接收數據實驗,CAN節點設置為擴展幀,幀格式為數據幀,幀ID為0x000000 82,下位機CAN調試軟件以十六進制接收數據,發送的是字符‘1’、‘2’、‘3’、‘4’、‘5’,下位機接收到的是對應的ASCII碼值0x31~0x35,以十六進制顯示。
    然后,進行下位機通過CAN接口發送數據,上位機通過USB口接收數據實驗,CAN節點設置不變,發送的數據是0x31~0x35五個數據,上位機收到的是‘1’~‘5’五個字符。具體測試界面見圖3和圖4。

3.JPG



5 結語
    設計了一套USB-CAN總線通信模塊,其中CAN控制器特別的使用了F2812內嵌eCAN模塊,在實際應用中,該通信部分能有效,及時的與系統其他節點進行通信,較為有效地將DSP的高速處理能力和CAN總線的優良特性結合起來,并且硬件電路設計更為簡單實用,采用C語言編程,提高了程序的可維護性,大大縮短了研發周期。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩国产欧美成人一区二区影院 | 日韩欧美一区二区三区久久 | 久久精品国产亚洲麻豆 | 国产三级精品三级在专区 | 青春久草 | 午夜剧场欧美 | 欧美一区二区手机在线观看视频 | 91短视频官网 | 成人精品 | www.亚洲国产 | 亚洲国产成a人v在线 | 亚洲精品国自产拍影院 | 欧美成人亚洲综合精品欧美激情 | 欧美天堂在线 | 黄色片一级免费 | 黄色a一级视频 | 成人亚洲欧美日韩在线观看 | 亚欧日韩毛片在线看免费网站 | 免费三级黄色片 | 国产成人18黄网站免费网站 | aaa在线观看高清免费 | 欧美日韩一区二区中文字幕视频 | awyy爱我影院午夜 | 男女摸下面刺激免费视频软件 | 成人国产精品免费视频不卡 | 欧美大片国产在线永久播放 | 成人国产亚洲 | 日本久久精品免视看国产成人 | 亚洲国产情侣偷自在线二页 | 日本高清h色视频在线观看 日本妇人成熟免费观看18 | 在线免费日本 | 一级毛片视频 | 羞羞人成午夜爽爽影院 | 欧美视频免费在线 | a一级日本特黄aaa大片 | 特级淫片日本高清视频 | 亚洲国产二区三区久久 | 18男女很黄的视频 | 黄色网在线免费观看 | 免费一级成人毛片 | 麻豆xfplay国产在线观看 |