基于S12ZVL的AFS執(zhí)行控制器設(shè)計(jì)
2.1 硬件設(shè)計(jì)
本文引用地址:http://m.butianyuan.cn/article/256215.htm執(zhí)行控制器采用S12ZVL來實(shí)現(xiàn)LIN通訊并控制步進(jìn)電機(jī)調(diào)整車燈上下左右運(yùn)動(dòng),同時(shí)實(shí)現(xiàn)一些輔助功能等。由于S12ZVL集成了LDO,LIN物理層等,所以可以簡(jiǎn)化電路設(shè)計(jì),減小PCB的尺寸。S12ZVL通過SPI接口來配置兩路NCV70522的電機(jī)控制參數(shù),比如步進(jìn)電機(jī)控制細(xì)分?jǐn)?shù),運(yùn)行電流等,同時(shí)S12ZVL通過Timer模塊產(chǎn)生不同頻率脈沖來控制步進(jìn)電機(jī)的速度,硬件結(jié)構(gòu)圖如圖3所示。
2.2 軟件設(shè)計(jì)
S12ZVL的編程調(diào)試可以使用飛思卡爾的Code Warrior 10.6環(huán)境,界面比較人性化。AFS執(zhí)行控制器程序包含主程序,LIN驅(qū)動(dòng)程序,步進(jìn)電機(jī)芯片的控制程序及標(biāo)定程序等部分。LIN驅(qū)動(dòng)程序可以使用飛思卡爾的LIN軟件包,其初始化可以通過LIN軟件包提供的接口函數(shù)實(shí)現(xiàn),步進(jìn)電機(jī)驅(qū)動(dòng)IC的初始化主要通過SPI通訊來實(shí)現(xiàn),可以配置電機(jī)驅(qū)動(dòng)IC的工作電流,步進(jìn)電機(jī)的細(xì)分?jǐn)?shù)等參數(shù)。在主循環(huán)中通過使用狀態(tài)機(jī)來實(shí)現(xiàn)函數(shù)的跳轉(zhuǎn),從而實(shí)現(xiàn)LIN報(bào)文接收。
除了主程序之外,還有timer的中斷服務(wù)程序,中斷服務(wù)程序可以控制兩個(gè)步進(jìn)電機(jī)的運(yùn)行及停止,實(shí)現(xiàn)步進(jìn)電機(jī)的加減速運(yùn)動(dòng),同時(shí)也能實(shí)現(xiàn)一些LIN報(bào)文命令的動(dòng)作,比如自校準(zhǔn)運(yùn)動(dòng),停止命令,復(fù)位命令等。
3 LIN通信實(shí)現(xiàn)
針對(duì)S08、S12以及S12 Magniv系列,飛思卡爾提供了符合LIN2.1、LIN2.0和SAE2602規(guī)范的軟件包,從而可以幫助開發(fā)者非常方便快速的開發(fā)出LIN通訊程序。圖4為飛思卡爾的LIN驅(qū)動(dòng)程序結(jié)構(gòu)圖,LIN2.1 Core API 和J2602 Core API可以實(shí)現(xiàn)對(duì)LIN的初始化以及應(yīng)用層與core層之間的信號(hào)傳遞功能,LIN2.1 TL層可以給測(cè)試者發(fā)送診斷請(qǐng)求,Low Level層處理程序與硬件之間的信號(hào)傳遞功能,比如字節(jié)發(fā)送,接收響應(yīng),Break檢測(cè)等。
該軟件包除了驅(qū)動(dòng)程序之外,還提供了方便開發(fā)者使用的圖形化配置工具NCF GUI,該工具可以根據(jù)LIN配置描述文件LCF和節(jié)點(diǎn)描述文件NCF自動(dòng)生成節(jié)點(diǎn)的配置.c和.h文件,將LIN代碼配置文件,LIN驅(qū)動(dòng)程序以及用戶應(yīng)用軟件一起編譯,就可以生成實(shí)現(xiàn)LIN通訊的可執(zhí)行程序,從而可以方便開發(fā)者將更多的時(shí)間放在應(yīng)用程序的開發(fā)上。
霍爾傳感器相關(guān)文章:霍爾傳感器工作原理
霍爾傳感器相關(guān)文章:霍爾傳感器原理
評(píng)論