基于步進(jìn)電機(jī)驅(qū)動(dòng)器MC33991的車(chē)速表設(shè)計(jì)
MC68HC908GR16的SPI時(shí)鐘引腳SPSCK、主機(jī)數(shù)據(jù)輸入從機(jī)輸出引腳MISO、主機(jī)數(shù)據(jù)輸出從機(jī)輸入引腳MOSI和I /O引腳PTC5, 分別接MC33991的SCLK、SO、SI、CS引腳, RSTB引腳與單片機(jī)的RST引腳連接。
2.2 軟件設(shè)計(jì)
2.2.1 SPI通信程序
微控制器MC68HC908GR16 上電后要初始化MC33991。MC68HC908GR16的SPI設(shè)為主模式。發(fā)送數(shù)據(jù)的格式要符合MC33991接、發(fā)數(shù)據(jù)的時(shí)序,MC33991收發(fā)數(shù)據(jù)的時(shí)序如圖3所示。SPI無(wú)數(shù)據(jù)傳輸時(shí)CS=1, 時(shí)鐘信號(hào)保持低電平。有數(shù)據(jù)傳輸時(shí),MC33991的SI引腳在SCLK時(shí)鐘的下降沿讀入1位數(shù)據(jù), 而輸出引腳SO在時(shí)鐘的上升沿輸出數(shù)據(jù)。設(shè)MC68HC908GR16的SPCR寄存器時(shí)鐘極性位COPL=0,時(shí)鐘相位控制位CPHA=1。設(shè)引腳PTC5方向寄存器DDRC5=1, 設(shè)為輸出。不與MC33991通信時(shí)令PTC5保持高電平。MC33991每次接收的數(shù)據(jù)必須是16,32, 48位。

2.2.2 MC33991初始化流程
MC33991的初始化流程圖如圖4所示。微控制器先向PECCR發(fā)送命令關(guān)閉步進(jìn)電機(jī), 并在2個(gè)電機(jī)停止轉(zhuǎn)動(dòng)的情況下發(fā)送時(shí)鐘校正命令。經(jīng)過(guò)時(shí)鐘校正后, MC33991內(nèi)部時(shí)鐘穩(wěn)定在1 MHz ( ±10%) ,校正時(shí)鐘后使能電機(jī), 可允許2個(gè)或者其中一個(gè)工作, 然后向寄存器RTZCR發(fā)送命令設(shè)置指針回零速度, 向VECR寄存器發(fā)送命令控制電機(jī)的最大轉(zhuǎn)速。如果步進(jìn)電機(jī)回零時(shí)指針不在一個(gè)整步位置或者磁場(chǎng)排列沒(méi)有對(duì)齊, MC33991回零檢測(cè)會(huì)發(fā)生錯(cuò)誤,導(dǎo)致回零失敗。所以在發(fā)送電機(jī)回零命令前, 先使電機(jī)前進(jìn)24微步或者30, 36, 42微步, 以保持磁場(chǎng)排列整齊, 然后發(fā)送指針回零命令, 指針轉(zhuǎn)向電機(jī)的逆時(shí)針極端。每一時(shí)刻只能有一個(gè)指針回零,微控制器檢測(cè)回零狀態(tài)直至回零結(jié)束。

初始化時(shí)需要注意, 時(shí)鐘校正可選為1 MHz,單片機(jī)發(fā)送完時(shí)鐘校正命令后拉低引腳, 延時(shí)8 μs后再將其拉高。如果電機(jī)的齒輪減速比較低則選擇0.667 MHz, 這種情況需要延時(shí)12 μs。
2.2.3 車(chē)速檢測(cè)
MC33991初始化后設(shè)MC68HC908GR16的定時(shí)器1通道零為輸入捕捉模式, 在輸入脈沖的下降沿進(jìn)入捕捉中斷, 并計(jì)算2次下降沿的計(jì)數(shù)差值Δt。本設(shè)計(jì)的車(chē)速儀表盤(pán)的最大車(chē)速為120 km/h,最高速度與最低速度對(duì)應(yīng)刻度盤(pán)的夾角為225 °, 對(duì)應(yīng)MC33991的靜態(tài)指示位為2 700。
汽車(chē)行駛速度可以利用以下公式計(jì)算

式中: n———2次速度脈沖間隔內(nèi)計(jì)數(shù)器的計(jì)數(shù)值之差; T———微控制器計(jì)數(shù)器時(shí)鐘源的周期;D———車(chē)輪外徑; μ———汽車(chē)輪胎變形系數(shù)( 一般取0.93~0.96) ; N———車(chē)輪轉(zhuǎn)一周, 車(chē)速傳感器發(fā)送的脈沖數(shù)。
微控制器根據(jù)計(jì)算得到的速度在儀表盤(pán)上的位置, 計(jì)算出MC33991的靜態(tài)指示位置, 并把靜態(tài)指示位發(fā)給MC33991, MC33991驅(qū)動(dòng)儀表指向指定位置。為加快程序運(yùn)行速度, 先根據(jù)車(chē)速、汽車(chē)車(chē)速儀表盤(pán)的參數(shù)計(jì)算出一個(gè)常數(shù)Con。

式中: vmax———汽車(chē)儀表盤(pán)指示的最大速度;C———用于調(diào)整指針指示誤差的常數(shù)。其中C用來(lái)調(diào)整車(chē)速表的指示位置, 使儀表指示速度不小于汽車(chē)的實(shí)際速度。車(chē)速表指針應(yīng)指向
的位置P0=Δt /Con, 由微控制器直接向MC33991發(fā)送此位置( P0) 命令, MC33991接到位置命令后即控制儀表電機(jī)旋轉(zhuǎn), 指向刻度盤(pán)的對(duì)應(yīng)位置。
3 結(jié)束語(yǔ)
本文詳細(xì)介紹了一種汽車(chē)車(chē)速表的設(shè)計(jì)方案,設(shè)計(jì)采用專(zhuān)用集成驅(qū)動(dòng)芯片MC33991。此表在試驗(yàn)臺(tái)運(yùn)行測(cè)試時(shí), 指針可以平滑轉(zhuǎn)動(dòng), 在加速度較高時(shí)也沒(méi)有超調(diào)抖動(dòng)。與傳統(tǒng)機(jī)械式儀表相比, 這種儀表響應(yīng)速度快、抖動(dòng)小、產(chǎn)品的穩(wěn)定性和可靠性高。與采用其它驅(qū)動(dòng)芯片的步進(jìn)電機(jī)式儀表相比,首先此表占用硬件資源少, 控制方便, 儀表響應(yīng)快; 其次能從任意位置以設(shè)定的速度恒速回零, 到達(dá)零點(diǎn)時(shí)無(wú)抖動(dòng); 最后儀表轉(zhuǎn)動(dòng)時(shí), 微控制器可以隨時(shí)通過(guò)MC33991讀取步進(jìn)電機(jī)的工作狀態(tài)。本文引用地址:http://www.antipu.com.cn/article/196191.htm
評(píng)論