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