引言
ABS(防抱æ»å‰Žè»Šç³»çµ±ï¼‰ECUï¼ˆé›»æŽ§å–®å…ƒï¼‰åœ¨ç ”ç™¼éŽç¨‹ä¸ï¼Œç‚ºäº†å¯¦æ™‚ç¢ºå®šå…¶è¡Œè»Šåƒæ•¸å’ŒæŽ§åˆ¶åƒæ•¸ï¼Œé€šå¸¸æœƒä½¿ç”¨æ¨™å®šæŠ€è¡“,標定技術就是通éŽä¸€å®šçš„命令å°ECUä¸Šå‚³å’Œè®€å–æŽ§åˆ¶ç®—æ³•åƒæ•¸ï¼Œä»¥é”到å°å…¶å¯¦æ™‚修改以尋求最優的技術。å°äºŽè»Šè¼‰é›»æŽ§å–®å…ƒä¾†èªªï¼Œå…¶é€šå¸¸åªæœ‰CAN總線通信接å£ï¼Œç‚ºäº†èƒ½å¯¦ç¾ä¸Šä½æ©Ÿå’ŒECU能直接進行通信,實ç¾åˆ©ç”¨æ¨™å®šæŠ€è¡“å°ABS ECU進行開發,我們è¨è¨ˆäº†ä¸€æ¬¾èƒ½å¯¦ç¾CAN到USB的數據轉æ›å™¨ã€‚CAN通信å”è°æ˜¯ä¸€ç¨®ç”¨äºŽæ±½è»Šå…§éƒ¨æ¸¬é‡èˆ‡åŸ·è¡Œéƒ¨ä»¶ä¹‹é–“的數據通信å”è°ã€‚而USBå…·æœ‰å³æ’å³ç”¨çš„優點,并且有較高的通信速率,å°äºŽå¯¦ç¾ä¸Šä½æ©Ÿå’Œä¸‹ä½æ©Ÿçš„通信進行標定å分方便。我們è¨è¨ˆçš„æ•¸æ“šè½‰æ›å™¨é‡‡ç”¨äº†NXPå…¬å¸çš„LPC2119 ARM7處ç†å™¨ï¼Œé€šéŽå®ƒæˆåŠŸåœ°å¯¦ç¾ä¸Šä½æ©Ÿå’ŒECUçš„å¯é 通信和å°ä¸‹ä½æ©Ÿçš„æ¨™å®šã€‚
系統硬件è¨è¨ˆ
LPC2119 ARM7處ç†å™¨
LPC2119是基于一個支æŒå¯¦æ™‚仿真和跟蹤的16/32ARM7TDMI-S CPU的微控制器,并帶有28/256kB嵌入的高速Flashå˜å„²å™¨ã€‚128ä½å¯¬åº¦çš„å˜å„²å™¨æŽ¥å£å’Œç¨ç‰¹çš„åŠ é€Ÿçµæ§‹ä½¿32ä½ä»£ç¢¼èƒ½å¤ 在最大時é˜é€Ÿçއ䏋é‹è¡Œã€‚
USB轉æ›èŠ¯ç‰‡CH372
CH372是一個USB總線的通用è¨å‚™æŽ¥å£èŠ¯ç‰‡ï¼Œåœ¨æœ¬åœ°ç«¯ï¼ŒCH372具有8使•¸æ“šç¸½ç·šå’Œè®€ã€å¯«ã€ç‰‡é¸æŽ§åˆ¶ç·šä»¥åŠä¸æ–·è¼¸å‡ºï¼Œå¯ä»¥æ–¹ä¾¿åœ°æŽ›æŽ¥åˆ°æŽ§åˆ¶å™¨çš„系統總線上;CH372內置了USB通訊ä¸çš„底層å”è°ï¼Œåœ¨å…§ç½®å›ºä»¶æ¨¡å¼ä¸‹ï¼ŒCH372自動處ç†é»˜èªç«¯é»ž0的所有事務。
系統è¨è¨ˆ
轉æ›å™¨ç›´æŽ¥ä½¿ç”¨USBçš„5V供電,使用了LM1117å°‡5Vé›»æºè½‰æ›æˆ3.3Vå’Œ1.8V以供ARM處ç†å™¨åŠå…¶å¤–åœæ¨¡å¡Šä½¿ç”¨ï¼Œå°äºŽCAN控制器輸出的é‚輯電平用TJA1050è½‰æ›æˆå·®åˆ†é›»å¹³è¼¸å‡ºCH372çš„è¨è¨ˆå分é‡è¦ï¼Œå¤–接電容用于CH372內外部電æºç¯€é»žåŽ»è€¦ã€‚åœ¨LPC2119çš„å„電壓引腳分別接了0.01μf的電容進行濾波。在USB轉æ›èŠ¯ç‰‡çš„è¨è¨ˆä¸ï¼Œå¯é¸4.7kÎ©é›»é˜»ç”¨äºŽåœ¨é›»æºæ–·é›»åŽå°‡é›»è§£é›»å®¹ä¸çš„é›»èƒ½åŠæ™‚釋放掉,使VCCåŠæ™‚下é™åˆ°0V,確ä¿åœ¨ä¸‹æ¬¡é€šé›»æ™‚CH372èƒ½å¤ å¯é 地上電復ä½ã€‚為使CH372èƒ½å¤ å¯é 復ä½ï¼Œé›»æºé›»å£“從0V上å‡åˆ°5Vçš„ä¸Šå‡æ™‚間應該少于100ms,所以電容的容é‡å’Œé›»é˜»çš„阻值都ä¸èƒ½å¤ªå¤§ã€‚用15pFçš„ç¨çŸ³æˆ–é«˜é »ç“·ç‰‡é›»å®¹ä½œç‚ºCH372çš„æ™‚é˜æŒ¯è•©é›»è·¯çš„起振電容。
系統硬件è¨è¨ˆéƒ¨åˆ†æ¡†åœ–如圖1。
[IMG=系統硬件è¨è¨ˆéƒ¨åˆ†æ¡†åœ–]/uploadpic/THESIS/2007/12/2007121410471377051M.jpg[/IMG]
系統軟件è¨è¨ˆ
系統程åºä¸»è¦åŒ…括CAN控制器驅動程åºï¼ŒUSB控制芯片CH372驅動程åºï¼Œæ•¸æ“šè®€å¯«ç·©æ²–å€çš„è¨è¨ˆï¼Œä»¥åŠå¦‚何調用CANå’ŒUSBçš„è®€å¯«å‡½æ•¸ä½¿æ•¸æ“šçš„é€šä¿¡æ›´å¥½çš„åŒæ¥ã€‚
CAN驅動程åº
æ ¹æ“šLPC2119微處ç†å™¨CAN控制器的特性,將CAN的驅動程åºåˆ†ç‚º3個層次:1.硬件抽象層:將CAN控制器的硬件特性用數據類型進行抽象,并æä¾›CAN控制器硬件æ“作的接å£ã€‚å°ç‰©ç†å±¤çš„寄å˜å™¨å’Œç›¸æ‡‰åœ°å€å½±å°„,定義了CAN控制器寄å˜å™¨çš„æ•¸æ“šé¡žåž‹å’Œå°å¯„å˜å™¨çš„æ“ä½œæ–¹æ³•ã€‚2.功能函數層:CAN控制器å„種功能的實ç¾å‡½æ•¸ï¼Œè©²å±¤çš„函數利用硬件抽象層ä¸å°å¯„å˜å™¨æ“作的接å£ä¾†è¨ªå•CAN控制器來實ç¾å„種CAN控制器所能æä¾›çš„功能。3ï¼Žæ‡‰ç”¨ç¨‹åºæŽ¥å£å±¤ï¼šåœ¨è©²å±¤ä¸çš„ä¸»è¦æä¾›çµ¦3個函數,åˆå§‹åŒ–CAN控制器CANinit()ã€ç™¼é€æ•¸æ“šCANSendDataï¼ˆï¼‰ã€æŽ¥æ”¶æ•¸æ“šCANRecieveData()。
CH372驅動程åº
CH372芯片在本地端æä¾›äº†é€šç”¨çš„被動并行接å£ã€‚CH372芯片的讀寫時åºä¸»è¦è¦æ±‚讀寫使能信號有一個2~10μsçš„æŒçºŒæ™‚間,并且在a0=1時寫入命令,a0=0時讀寫數據。在本è¨è¨ˆä¸ï¼Œç”¨LPC2119çš„10å£ä¾†è¡¨ç¤ºCH372çš„å„信號,并需è¦åš´æ ¼æŒ‰ç…§å…¶æ™‚åºè¦æ±‚用軟件模擬其讀寫時åºï¼Œä¸€å€‹å…¸åž‹çš„寫數據å函數如下:

在以上程åºä¸ï¼Œå°å„端å£çš„æ“ä½œå…ˆåŽä»£è¡¨äº†CH372的讀寫時åºä¿¡è™Ÿçš„å…ˆåŽï¼Œé©ç•¶çš„延時表示有效的寫/讀é¸é€šè„ˆæ²–WR/RD的寬度,其典型值為90到10000nsï¼Œæˆ‘å€‘é¸æ“‡25μs。åŒç†å¯å¾—寫命令,讀數據å函數:USBWriteCMD(uint32 CMD),USBReadData()。調用以上å函數æä¾›äº†ç™¼é€å’ŒæŽ¥æ”¶æ•¸æ“šçš„函數:IRQ_CH372(void),UploadUSBData(unin32Length,uint32 Data[])。
環形緩沖å€
在本è¨è¨ˆä¸ï¼Œè¨è¨ˆäº†å…©å€‹ç’°å½¢ç·©æ²–å€ï¼Œåˆ†åˆ¥å˜æ”¾USBåŠCANçš„æ•¸æ“šï¼Œä½¿å…¶èƒ½åŒæ¥ç™¼é€ï¼Œä¸€å€‹å…¸åž‹çš„ç·©æ²–å€æ•¸æ“šçµæ§‹å¦‚下:

æ•¸æ“šå…ƒç´ æ˜¯ç„¡ç¬¦è™Ÿ32使•´æ•¸ï¼ŒMAXç‚ºç’°å½¢ç·©æ²–å€æœ€å¤§é•·åº¦ï¼ŒWritePtr為讀指é‡ï¼ŒReadPtr為寫指é‡ã€‚讀寫指é‡åˆå§‹åŒ–為writePtr=ReadPtr=0。通éŽCAN控制器接å—çš„æ•¸æ“šå˜æ”¾åœ¨ç’°å½¢ç·©æ²–å€CANRecRinBufä¸ï¼Œå†è®€å‡ºæ•¸æ“šå¾žUSB端輸出,ä¿è‰äº†æ•¸æ“šé€šä¿¡çš„å¯é 性。
ä¸Šä½æ©Ÿç›£æŽ§ç•Œé¢
安è£CH372çš„ä¸Šä½æ©Ÿé©…å‹•åŽï¼ŒåŸºäºŽCH372çš„USBè¨å‚™å°±å¯ä»¥è¢«ä¸Šä½æ©Ÿè˜åˆ¥äº†ã€‚調用CH372æä¾›çš„動態連接庫CH372.d11åŠå…¶ç›¸æ‡‰çš„LIB文件CH372.Libå’Œé æ–‡ä»¶CH372.hï¼Œä»¥å»ºç«‹ä¸Šä½æ©Ÿçš„å·¥åºï¼Œèª¿ç”¨CH372æä¾›çš„庫函數CH375OpenDevice()ã€CH375CloseDevice(),用于打開和關閉è¨å‚™ï¼Œèª¿ç”¨CH375WriteData();CH375ReadDataï¼ˆï¼‰æŽ¥æ”¶ä¸‹ä½æ©Ÿé€šéŽCH372發é€ä¸Šä¾†çš„æ•¸æ“šï¼Œå¹¶æ ¹æ“šCANç¸½ç·šæ•¸æ“šçš„æ ¼å¼å°‡å…¶å°è£æˆCANæ ¼å¼çš„æ•¸æ“šï¼Œæä¾›å°CAN數據的收發CANDownload(),CANUpload()。用C++è¨è¨ˆç›¸æ‡‰çš„圖形界é¢ä»¥å¯¦ç¾å’Œä¸‹ä½æ©Ÿçš„通信。
çµèªž
在ABSECUçš„ç ”ç™¼é …ç›®ä¸ï¼Œæˆ‘們使用了æ¤è½‰æ›å™¨å°‡ECUçš„CANæ•¸æ“šè½‰æ›æˆUSBæ•¸æ“šå’Œä¸Šä½æ©Ÿé€šä¿¡ï¼ŒECUä¸Šå‚³éœ€ç›£æŽ§åƒæ•¸ï¼Œä¸Šä½æ©Ÿä¸‹å‚³æ¨™å®šåƒæ•¸ã€‚其硬件上使用ARM7å…§æ ¸çš„LPC2119作為控制器,以åŠåº•層軟件的è¨è¨ˆç¢ºä¿äº†è½‰æ›å™¨åœ¨å¯¦éš›çš„ECU開發的CCP標定的工程ä¸ï¼Œåœ¨å¤§é‡æ•¸æ“šé€²è¡Œå‚³è¼¸çš„éŽç¨‹ä¸æœ‰è¼ƒå¥½çš„å¯é 性。