袁月峰 郭斌 胡淑女 徐源
摘 要: 采用可編程線(xiàn)性霍爾位置傳感器為角度測(cè)量元件的非接觸式汽車(chē)電子油門(mén)踏板正在獲得越來(lái)越廣泛的應(yīng)用。為了實(shí)現(xiàn)產(chǎn)品在線(xiàn)編程校準(zhǔn),企業(yè)目前需要依賴(lài)購(gòu)買(mǎi)原裝進(jìn)口的編程器套件,不僅價(jià)格高昂,也經(jīng)常出現(xiàn)各種故障和異常,維護(hù)溝通困難、周期長(zhǎng),且通信協(xié)議復(fù)雜難于掌握使用。針對(duì)MicronasTM公司的HAL880型霍爾傳感器設(shè)計(jì)研制了一種電子油門(mén)踏板專(zhuān)用編程校準(zhǔn)系統(tǒng),采用線(xiàn)性穩(wěn)壓器LM317和低導(dǎo)通內(nèi)阻的多路模擬開(kāi)關(guān)ADG1608控制HAL880的編程通道,采用脈沖寬度捕獲法讀取識(shí)別其輸出寄存器數(shù)值。編程器采用dsPIC33EP256單片機(jī)為核心,設(shè)計(jì)開(kāi)發(fā)了固件程序,采用Visual C#開(kāi)發(fā)上位機(jī)通信校準(zhǔn)程序。在某型踏板產(chǎn)品上進(jìn)行實(shí)驗(yàn)測(cè)試,結(jié)果顯示該系統(tǒng)能實(shí)現(xiàn)傳感器的數(shù)據(jù)讀取、曲線(xiàn)校準(zhǔn)和編程寫(xiě)入的完整過(guò)程。
關(guān)鍵詞: 電子油門(mén)踏板; 霍爾傳感器HAL880; 系統(tǒng)設(shè)計(jì); 編程校準(zhǔn); 多路模擬開(kāi)關(guān); dsPIC33EP256
中圖分類(lèi)號(hào): TN99?34; U467.4 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2018)12?0115?05
Abstract: The non?contact automobile electronic accelerator pedal which uses programmable linear Hall position sensor as the angle measurement element is being more and more widely applied. Enterprises currently need to rely on purchase of programmer sets imported with original packaging which are expensive, often have various faults and exceptions, are difficult for maintenance and communication, and have long period and complex communication protocols difficult to master and use, to realize the online programming calibration of products. A special programming calibration system for the electrical accelerator pedal was designed and developed for the application of Hall sensor HAL880 of MicronasTM. The linear voltage regulator LM317 and the multi?path analog switch ADG1608 with low?pass internal resistance are adopted to control the programming channel of HAL880. The pulse width capture method is adopted to read and recognize the values of the output register. Firmware program is designed and developed for the programmer, taking dsPIC33EP256 MCU as its core. Visual C# is adopted to develop the communication calibration program for the upper computer. An experiment for testing a certain type of pedal product was carried out. The results show that the system can accomplish the whole process of sensor data reading, curve calibration and programming write?in.
Keywords: electronic accelerator pedal; Hall sensor HAL880; system design; programming calibration; multi?path analog switch; dsPIC33EP256
0 引 言
傳統(tǒng)拉線(xiàn)式汽車(chē)油門(mén)控制缺乏精確性,響應(yīng)慢,目前歐Ⅲ要求以上的汽車(chē)都已要求使用電子油門(mén)踏板[1]。電子油門(mén)使用傳感器測(cè)量踏板位置變化,可以更加精確靈敏地響應(yīng)加速要求,更有利于達(dá)到排放要求。目前市場(chǎng)上主流電子油門(mén)踏板產(chǎn)品是使用霍爾位置傳感器來(lái)測(cè)量踏板角度變化。研發(fā)該踏板產(chǎn)品及相應(yīng)的產(chǎn)品在線(xiàn)檢測(cè)標(biāo)定系統(tǒng)[2?9]的文獻(xiàn)資料較多。國(guó)內(nèi)汽車(chē)油門(mén)踏板企業(yè)目前采用德國(guó)Micronas公司的HAL8xx系列線(xiàn)性可編程霍爾傳感器最為廣泛。為了實(shí)現(xiàn)產(chǎn)品在線(xiàn)編程校準(zhǔn),企業(yè)目前需要依賴(lài)購(gòu)買(mǎi)原裝進(jìn)口的編程器套件,不僅價(jià)格高昂,也經(jīng)常出現(xiàn)各種故障和異常,維護(hù)溝通困難,周期長(zhǎng),且通信協(xié)議復(fù)雜難于掌握使用。針對(duì)企業(yè)實(shí)際需求,設(shè)計(jì)研發(fā)一種針對(duì)HAL880芯片的在線(xiàn)編程校準(zhǔn)系統(tǒng)樣機(jī),不但實(shí)現(xiàn)替代了進(jìn)口編程器,還進(jìn)一步擴(kuò)展了部分實(shí)用功能。樣機(jī)對(duì)于其他Micronas公司同類(lèi)系列產(chǎn)品具有兼容擴(kuò)展性。
1 HAL880傳感器結(jié)構(gòu)原理
德國(guó)Micronas公司是一家服務(wù)全球汽車(chē)電子客戶(hù)的傳感器和零部件廠(chǎng)商,多種先進(jìn)的可編程霍爾傳感器是該公司的特色產(chǎn)品,主要應(yīng)用于工業(yè)自動(dòng)化和汽車(chē)電子領(lǐng)域。國(guó)內(nèi)電子油門(mén)踏板產(chǎn)品目前應(yīng)用較多的是該公司HAL880可編程線(xiàn)性霍爾位置傳感器[10]。
HAL880傳感器內(nèi)部結(jié)構(gòu)原理如圖1所示。前端感知部分是霍爾敏感片,經(jīng)過(guò)片內(nèi)前置A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字量,進(jìn)入數(shù)字信號(hào)處理單元(DSP)進(jìn)行數(shù)字濾波、增益調(diào)整和偏移補(bǔ)償?shù)?,再通過(guò)后續(xù)D/A轉(zhuǎn)換和運(yùn)放緩沖器變換輸出模擬電壓信號(hào)。芯片內(nèi)部集成E2PROM,分成多個(gè)控制寄存器單元,分別用于設(shè)置和保存?zhèn)鞲衅鞴ぷ髂J?、磁感?yīng)強(qiáng)度量程、溫度系數(shù)、靈敏度、零點(diǎn)偏移量、上下限鉗位電壓和用戶(hù)代碼參數(shù)等。芯片為T(mén)O92三極管型封裝,三個(gè)引腳分別是VDD,GND和VOUT。芯片的編程通信通過(guò)在VDD引腳上輸入可編程電壓時(shí)序脈沖實(shí)現(xiàn)參數(shù)的寫(xiě)入和固化存儲(chǔ),通過(guò)VOUT引腳上的反饋數(shù)字脈沖序列讀取內(nèi)部寄存器數(shù)值輸出。
HAL880芯片VDD引腳正常工作電壓是5 V。在需要編程通信時(shí),VDD引腳則在5.6~8.0 V之間跳變,在E2PROM的擦除和參數(shù)固化編程時(shí)則需要12.5 V的燒錄電壓。芯片通信時(shí)序較為特殊,手冊(cè)給出的標(biāo)稱(chēng)參考數(shù)值如下:VDD引腳編程通信的數(shù)字0用持續(xù)時(shí)間為1.75 ms的高電平8.0 V或者低電平5.6 V表示。數(shù)字1用在1.75 ms時(shí)間內(nèi)65%時(shí)間點(diǎn)產(chǎn)生電平切換表示。連續(xù)兩個(gè)數(shù)字0需要用一個(gè)高電平0和一個(gè)低電平0才能區(qū)分。每個(gè)寄存器的寫(xiě)入過(guò)程是通過(guò)上述連續(xù)的電平變化時(shí)間序列幀實(shí)現(xiàn)。一幀數(shù)據(jù)包括1位起始位Sync同步字符0,3位命令碼COM,1位命令碼校驗(yàn)位CP,4位寄存器地址碼ADR,1位寄存器地址校驗(yàn)位AP,14位寄存器數(shù)據(jù)和1位數(shù)據(jù)校驗(yàn)位DP。其中CP和AP位的校驗(yàn)方式相同,是計(jì)數(shù)COM或ADR數(shù)據(jù)中0的個(gè)數(shù),若為奇數(shù),則校驗(yàn)位為1;而DP位則相反,如14位DAT中0的個(gè)數(shù)為偶數(shù),則DP為1,反之為0。HAL880的通信協(xié)議格式如圖2所示。
2 編程校準(zhǔn)系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)硬件結(jié)構(gòu)
根據(jù)HAL880芯片手冊(cè)[10]技術(shù)要求,設(shè)計(jì)了原理結(jié)構(gòu)如圖3所示的編程器硬件電路。其中微處理器MCU選用Microchip微芯公司的16位增強(qiáng)型DSP內(nèi)核單片機(jī)dsPIC33EP256,最高工作主頻70 MHz,片內(nèi)256 kB FLASH和32 kB SRAM,集成了豐富實(shí)用的片上外設(shè)資源。尤其是其內(nèi)部具有9個(gè)16位通用定時(shí)計(jì)數(shù)器T/C,8路高分辨率可編程脈沖捕獲比較CCP單元,片內(nèi)12位500 KSPS模/數(shù)轉(zhuǎn)換器[11],非常適合工控嵌入式控制器與傳感器儀表應(yīng)用領(lǐng)域。
由于HAL880的編程通信電壓的容差范圍和紋波要求都比較嚴(yán)格,所以采用LM317線(xiàn)性可調(diào)穩(wěn)壓器芯片能實(shí)現(xiàn)精確而且低紋波的各種編程電壓。VDD引腳電壓的狀態(tài)切換則是通過(guò)ADI公司的ADG1608寬電壓低導(dǎo)通內(nèi)阻的多路模擬開(kāi)關(guān)實(shí)現(xiàn)。為了方便通斷連接和其他外部電路,芯片的VDD/VOUT接口處采取信號(hào)繼電器連接。VOUT引腳在正常工作時(shí)是模擬電壓輸出,在編程通信時(shí)又作為響應(yīng)數(shù)據(jù)的數(shù)字量輸出端口。VOUT引腳的連接采用了雙路2選1的ADG1636模擬開(kāi)關(guān)做切換。數(shù)字脈沖信號(hào)通道經(jīng)過(guò)LM393的前置比較整形后再進(jìn)入MCU的脈寬捕獲通道IC。模擬信號(hào)則經(jīng)串聯(lián)分壓低通濾波后進(jìn)入單片機(jī)的12位A/D轉(zhuǎn)換通道。
編程器設(shè)計(jì)具有2路HAL880編程通道單元,2個(gè)通道共享同一組4路LM317電壓發(fā)生器,每通道內(nèi)部具有自己的多路模擬開(kāi)關(guān)和信號(hào)繼電器。其他硬件單元還包括串口通信和工作狀態(tài)指示燈等。
2.2 編程器固件通信程序
編程器固件程序要實(shí)現(xiàn)上位機(jī)和傳感器之間的通信和數(shù)據(jù)轉(zhuǎn)換,關(guān)鍵功能主要包括將上位機(jī)發(fā)來(lái)的指令和寄存器數(shù)據(jù)翻譯轉(zhuǎn)換為正確的通信電平序列,將芯片輸出的數(shù)字脈沖序列捕獲并譯碼為正確的寄存器數(shù)值反饋給計(jì)算機(jī),以及將芯片測(cè)量的模擬電壓進(jìn)行A/D轉(zhuǎn)換采集傳輸給計(jì)算機(jī)。芯片單個(gè)寄存器的寫(xiě)入過(guò)程以一個(gè)下限鉗位電壓ClampLow寄存器為例說(shuō)明:
1) 對(duì)要寫(xiě)入的寄存器二進(jìn)制數(shù)值做范圍判斷及限幅,如ClampLow的允許范圍是一字節(jié)數(shù)0~255。
2) 計(jì)算寄存器數(shù)值部分的DP位,方法是將寄存器從最低位D0開(kāi)始向左數(shù)14位,計(jì)數(shù)0的個(gè)數(shù),若為奇數(shù)則返回0,反之是1,不足14位的寄存器高位補(bǔ)零計(jì)入。
3) 將COM指令(WRITE,0x03),CP,ADR (ClampLow, 0x01),AP,14位寄存器值DAT,DP位按順序連接組合成3個(gè)無(wú)符號(hào)字節(jié)數(shù)據(jù)wrbuf1,wrbuf2和wrbuf3。其中wrbuf1=COM<<5+CP<<4+ADR;wrbuf2=AP<<7+ClampLow/256;wrbuf3=ClampLow<<1+DP。
4) 選通通道A或B,將VDD引腳初始化為邏輯低電平5.6 V,先寫(xiě)入一個(gè)SYNC同步字符0,然后按順序分別依次連續(xù)寫(xiě)入wrbuf1,wrbuf2,wrbuf3三個(gè)字節(jié)內(nèi)容,即完成單個(gè)寄存器一幀數(shù)據(jù)的寫(xiě)入。
5) 選通VOUT引腳的數(shù)字輸入通道,開(kāi)啟單片機(jī)IC捕獲,等待傳感器的ACK反饋信號(hào)。測(cè)量ACK信號(hào)以上升沿開(kāi)始至下降沿結(jié)束中間的高電平持續(xù)時(shí)間,正常范圍應(yīng)在2~3 ms之間,標(biāo)稱(chēng)值2.54 ms。若檢測(cè)到正常寬度的ACK信號(hào)則表示本次寄存器寫(xiě)入成功,可以繼續(xù)下一個(gè)寄存器的寫(xiě)入。否則表示ACK信號(hào)異常,則寫(xiě)入失敗。
HAL880的編程寫(xiě)入過(guò)程,需要將除LOCK以外的全部6個(gè)工作參數(shù)寄存器數(shù)據(jù)一次性連續(xù)寫(xiě)入,寄存器數(shù)據(jù)先后次序無(wú)影響,然后連續(xù)執(zhí)行一次擦除Erase指令和一次編程PROG指令就可以實(shí)現(xiàn)芯片數(shù)據(jù)的固化。相鄰的兩個(gè)寄存器寫(xiě)入操作之間VDD引腳電平應(yīng)保持為邏輯低電平5.6 V,并間隔20 ms以上的時(shí)間。