技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術頻道 > 技術百科 > 基于ARM7的CAN-USB轉換器設計

基于ARM7的CAN-USB轉換器設計

時間:2007-12-14 10:38:00來源:dujing

導語:?設計了一種CAN-USB轉換器,實現(xiàn)了CAN總線與上位機的實時通信,完成了對CAN總線通信的實時信息采集
引言 ABS(防抱死剎車系統(tǒng))ECU(電控單元)在研發(fā)過程中,為了實時確定其行車參數(shù)和控制參數(shù),通常會使用標定技術,標定技術就是通過一定的命令對ECU上傳和讀取控制算法參數(shù),以達到對其實時修改以尋求最優(yōu)的技術。對于車載電控單元來說,其通常只有CAN總線通信接口,為了能實現(xiàn)上位機和ECU能直接進行通信,實現(xiàn)利用標定技術對ABS ECU進行開發(fā),我們設計了一款能實現(xiàn)CAN到USB的數(shù)據(jù)轉換器。CAN通信協(xié)議是一種用于汽車內(nèi)部測量與執(zhí)行部件之間的數(shù)據(jù)通信協(xié)議。而USB具有即插即用的優(yōu)點,并且有較高的通信速率,對于實現(xiàn)上位機和下位機的通信進行標定十分方便。我們設計的數(shù)據(jù)轉換器采用了NXP公司的LPC2119 ARM7處理器,通過它成功地實現(xiàn)上位機和ECU的可靠通信和對下位機的標定。 系統(tǒng)硬件設計 LPC2119 ARM7處理器 LPC2119是基于一個支持實時仿真和跟蹤的16/32ARM7TDMI-S CPU的微控制器,并帶有28/256kB嵌入的高速Flash存儲器。128位寬度的存儲器接口和獨特的加速結構使32位代碼能夠在最大時鐘速率下運行。 USB轉換芯片CH372 CH372是一個USB總線的通用設備接口芯片,在本地端,CH372具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到控制器的系統(tǒng)總線上;CH372內(nèi)置了USB通訊中的底層協(xié)議,在內(nèi)置固件模式下,CH372自動處理默認端點0的所有事務。 系統(tǒng)設計 轉換器直接使用USB的5V供電,使用了LM1117將5V電源轉換成3.3V和1.8V以供ARM處理器及其外圍模塊使用,對于CAN控制器輸出的邏輯電平用TJA1050轉換成差分電平輸出CH372的設計十分重要,外接電容用于CH372內(nèi)外部電源節(jié)點去耦。在LPC2119的各電壓引腳分別接了0.01μf的電容進行濾波。在USB轉換芯片的設計中,可選4.7kΩ電阻用于在電源斷電后將電解電容中的電能及時釋放掉,使VCC及時下降到0V,確保在下次通電時CH372能夠可靠地上電復位。為使CH372能夠可靠復位,電源電壓從0V上升到5V的上升時間應該少于100ms,所以電容的容量和電阻的阻值都不能太大。用15pF的獨石或高頻瓷片電容作為CH372的時鐘振蕩電路的起振電容。 系統(tǒng)硬件設計部分框圖如圖1。
[IMG=系統(tǒng)硬件設計部分框圖]/uploadpic/THESIS/2007/12/2007121410471377051M.jpg[/IMG]
系統(tǒng)軟件設計 系統(tǒng)程序主要包括CAN控制器驅(qū)動程序,USB控制芯片CH372驅(qū)動程序,數(shù)據(jù)讀寫緩沖區(qū)的設計,以及如何調(diào)用CAN和USB的讀寫函數(shù)使數(shù)據(jù)的通信更好的同步。 CAN驅(qū)動程序 根據(jù)LPC2119微處理器CAN控制器的特性,將CAN的驅(qū)動程序分為3個層次:1.硬件抽象層:將CAN控制器的硬件特性用數(shù)據(jù)類型進行抽象,并提供CAN控制器硬件操作的接口。對物理層的寄存器和相應地址影射,定義了CAN控制器寄存器的數(shù)據(jù)類型和對寄存器的操作方法。2.功能函數(shù)層:CAN控制器各種功能的實現(xiàn)函數(shù),該層的函數(shù)利用硬件抽象層中對寄存器操作的接口來訪問CAN控制器來實現(xiàn)各種CAN控制器所能提供的功能。3.應用程序接口層:在該層中的主要提供給3個函數(shù),初始化CAN控制器CANinit()、發(fā)送數(shù)據(jù)CANSendData()、接收數(shù)據(jù)CANRecieveData()。 CH372驅(qū)動程序 CH372芯片在本地端提供了通用的被動并行接口。CH372芯片的讀寫時序主要要求讀寫使能信號有一個2~10μs的持續(xù)時間,并且在a0=1時寫入命令,a0=0時讀寫數(shù)據(jù)。在本設計中,用LPC2119的10口來表示CH372的各信號,并需要嚴格按照其時序要求用軟件模擬其讀寫時序,一個典型的寫數(shù)據(jù)子函數(shù)如下: 在以上程序中,對各端口的操作先后代表了CH372的讀寫時序信號的先后,適當?shù)难訒r表示有效的寫/讀選通脈沖WR/RD的寬度,其典型值為90到10000ns,我們選擇25μs。同理可得寫命令,讀數(shù)據(jù)子函數(shù):USBWriteCMD(uint32 CMD),USBReadData()。調(diào)用以上子函數(shù)提供了發(fā)送和接收數(shù)據(jù)的函數(shù):IRQ_CH372(void),UploadUSBData(unin32Length,uint32 Data[])。 環(huán)形緩沖區(qū) 在本設計中,設計了兩個環(huán)形緩沖區(qū),分別存放USB及CAN的數(shù)據(jù),使其能同步發(fā)送,一個典型的緩沖區(qū)數(shù)據(jù)結構如下: 數(shù)據(jù)元素是無符號32位整數(shù),MAX為環(huán)形緩沖區(qū)最大長度,WritePtr為讀指針,ReadPtr為寫指針。讀寫指針初始化為writePtr=ReadPtr=0。通過CAN控制器接受的數(shù)據(jù)存放在環(huán)形緩沖區(qū)CANRecRinBuf中,再讀出數(shù)據(jù)從USB端輸出,保證了數(shù)據(jù)通信的可靠性。 上位機監(jiān)控界面 安裝CH372的上位機驅(qū)動后,基于CH372的USB設備就可以被上位機識別了。調(diào)用CH372提供的動態(tài)連接庫CH372.d11及其相應的LIB文件CH372.Lib和頭文件CH372.h,以建立上位機的工序,調(diào)用CH372提供的庫函數(shù)CH375OpenDevice()、CH375CloseDevice(),用于打開和關閉設備,調(diào)用CH375WriteData();CH375ReadData()接收下位機通過CH372發(fā)送上來的數(shù)據(jù),并根據(jù)CAN總線數(shù)據(jù)的格式將其封裝成CAN格式的數(shù)據(jù),提供對CAN數(shù)據(jù)的收發(fā)CANDownload(),CANUpload()。用C++設計相應的圖形界面以實現(xiàn)和下位機的通信。 結語 在ABSECU的研發(fā)項目中,我們使用了此轉換器將ECU的CAN數(shù)據(jù)轉換成USB數(shù)據(jù)和上位機通信,ECU上傳需監(jiān)控參數(shù),上位機下傳標定參數(shù)。其硬件上使用ARM7內(nèi)核的LPC2119作為控制器,以及底層軟件的設計確保了轉換器在實際的ECU開發(fā)的CCP標定的工程中,在大量數(shù)據(jù)進行傳輸?shù)倪^程中有較好的可靠性。

標簽:

點贊

分享到:

上一篇:基于SOPC的便攜式邊界掃描故...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(surachana.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

相關資訊

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號