基于AVR Flash微控制器的電動車窗防夾系統(tǒng)設(shè)計的基本原理
– 速度推導計算:很有意義的一種技術(shù),因為它對內(nèi)存要求較少,但需要更多的計算,具有兩種方法的優(yōu)點。
在AVR上的實現(xiàn)
前幾段詳細描述的算法已經(jīng)實現(xiàn),并在一塊AVR ATmega88 開發(fā)板上進行了測試。圖2 描述的是用以實現(xiàn)算法的硬件。它采用了一塊標準的ATmega88 以及模擬鏈來測量電機電流。硬件帶有兩個霍爾效應(yīng)傳感器。馬達的方向是通過一個兩極延遲來控制的,并通過一個場效應(yīng)管來激活馬達的開關(guān)。
系統(tǒng)內(nèi)編程Flash
系統(tǒng)內(nèi)編程允許任何位于端系統(tǒng)內(nèi)的AVR 微控制器進行編程和再編程。通過一個簡單的三線SPI 接口,系統(tǒng)內(nèi)編程器與AVR 微控制器進行串行通訊,從而重編程芯片上的所有非易失性內(nèi)存。系統(tǒng)內(nèi)編程無須將芯片從系統(tǒng)中物理上拿出。這樣無論是在實驗室的開發(fā)階段,還是現(xiàn)場的軟件或參數(shù)的升級,均可以節(jié)約時間和資金。在最終產(chǎn)品階段將代碼上傳進Flash 存儲器中時,在多個應(yīng)用和自定義版本中使用同一個標準的AVR Flash 微控制器可以簡化總量管理。
軟件描述
所有代碼使用IAR EWAVR 4.1 以C 語言方式實現(xiàn)?;竟δ?位置管理、初始化、電流管理、車窗操作、防夾監(jiān)測)的實現(xiàn)需要2KB Flash。增加擴展功能象校準、阻塞點的檢測和存儲,可將代碼大小擴展至4KB。軟件代碼可在Atmel的網(wǎng)站中獲得,其結(jié)構(gòu)如下:
初始化腳通過一個霍爾效應(yīng)傳感器(對信號沿的升起和下降敏感)改變所要用的中斷。它還初始化用于測量速度和馬達電流的時鐘和ACD。
這個函數(shù)從EEPROM 或以初始值方式加載車窗提升參數(shù),以初始化車窗提升器。這些參數(shù)包括車窗的大小、傳感器值、夾物閾值、夾物區(qū)域、已知的最后的位置,等等。如果在位置參數(shù)上是一個缺省值,它能夠請求一個下降的命令在底端限制值上初始化車窗提升器。
這個函數(shù)是將車窗提升參數(shù)存進EEPROM。
這個函數(shù)包含了車窗提升狀態(tài)機。它通過已有的事件參數(shù)控制車窗的操作。監(jiān)視車窗的位置、上升和下降端的限制以及防夾系統(tǒng)的狀態(tài)。返回車窗提升器的狀態(tài)(與get_window_state 函數(shù)的值相同)。
這個中斷子例和在霍爾傳感器沿執(zhí)行。它計算滾動方向、位置、推導速度和馬達電流參考值。通過計算連續(xù)的方向變化,它還能夠檢測出霍爾效應(yīng)傳感器的缺省值(傳感器沒有連接至一個中斷腳上)。
這個函數(shù)強制車窗在一個定義好的步驟后停下來。該函數(shù)返回車窗提升狀態(tài)機的狀態(tài)(這個返回值用于window_ctrl 函數(shù)中)。
建立車窗提升狀態(tài):用于強制性操作中(如停止請求…)
計算最后8 個采樣點的均值。用于過濾馬達電流。
這個函數(shù)監(jiān)視啟動按鈕,產(chǎn)生操作命令事件并傳遞給window_ctrl 函數(shù)。
霍爾傳感器相關(guān)文章:霍爾傳感器工作原理
霍爾傳感器相關(guān)文章:霍爾傳感器原理
評論