基于GP32的直流電機(jī)控制器測(cè)試系統(tǒng)
3.2 A/D 轉(zhuǎn)換子程序
模擬量采集是測(cè)試系統(tǒng)的一個(gè)重要組成部分。系統(tǒng)要求底層軟件能夠?qū)δM量和開(kāi)關(guān)量信號(hào)進(jìn)行監(jiān)控,同時(shí)也要求能夠?qū)Σ糠中盘?hào)進(jìn)行高速數(shù)據(jù)采集。每當(dāng)運(yùn)行A/D 轉(zhuǎn)換程序 ADC11P.c 時(shí),MC68HC908GP32 通過(guò)SPI 模塊控制A/D 轉(zhuǎn)換器的工作。首先, MC68HC908GP32 將A/D 轉(zhuǎn)換通道號(hào)放入控制字的高字節(jié),并定義輸出數(shù)據(jù)的格式為16 位, 以MSB 方式送出二進(jìn)制數(shù)據(jù);接著將控制字寫到SPI 的數(shù)據(jù)寄存器,發(fā)送給TLC2543,在控 制字傳送過(guò)程中,MC68HC908GP32 保持等待狀態(tài),直到其發(fā)送完畢,至此發(fā)送過(guò)程結(jié)束。 隨后等待接收TLC2543 發(fā)送過(guò)來(lái)的數(shù)據(jù),當(dāng)判斷接收標(biāo)志位為1 時(shí),從SPI 的數(shù)據(jù)寄存器 接收數(shù)據(jù),并將該數(shù)據(jù)存放到預(yù)先分配好的內(nèi)存空間。由十每次從TLC2543 取出的數(shù)據(jù)是上一周期的數(shù)據(jù),所以上述過(guò)程中NE64 所取得的數(shù)據(jù)僅僅是上次轉(zhuǎn)換結(jié)果的高字節(jié)。接下 來(lái),MC68HC908GP32 只要通過(guò)向SPI 的數(shù)據(jù)寄存器中寫入任意的字節(jié),并重復(fù)上述發(fā)送等 待和接收等待的過(guò)程,即可取得上次轉(zhuǎn)換結(jié)果的低字節(jié),將其存入緊接高字節(jié)之后的地址空間,其流程如圖5 所示。
3.3 串行通信子程序
串行通信子程序 SCL.c 主要完成SCI 初始化,波特率設(shè)置、通信格式設(shè)置、發(fā)送接收數(shù)據(jù)方式的設(shè)置等,由SCI 初始化、接收1 字節(jié)、發(fā)送1 字節(jié)、接收n 字節(jié)和發(fā)送n 字節(jié)函數(shù)組成。在上下位機(jī)通過(guò)RS232 進(jìn)行串行通訊之前,需要對(duì)串口工作方式以及所采用的波特率進(jìn)行設(shè)置:
(1)串行口工作方式設(shè)定:將串行口設(shè)置為工作方式即10 位為一幀的異步串行方式。共包 括1 個(gè)起始位,8 個(gè)數(shù)據(jù)位和1 個(gè)停止位,允許SCI、正常碼輸出、8 位數(shù)據(jù)、無(wú)校驗(yàn),即 設(shè)SCC1=Ob01000000; 同時(shí)設(shè)置允許發(fā)送、允許接收,查詢方式收發(fā), 即設(shè) SCC2=0b00001100。
(2)波特率設(shè)定:本控制器采用的波特率為9600,經(jīng)過(guò)計(jì)算有SCBR=0b00000010。
4.結(jié)論
本文創(chuàng)新點(diǎn):本文在MCU MC68HC908GP32 的基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了平臺(tái)及外圍電路的設(shè)計(jì),并給出MCU 方軟件實(shí)現(xiàn)的總體原則,接著對(duì)各個(gè)子程序功能進(jìn)行了分析與設(shè)計(jì),最 后給出數(shù)據(jù)采集與數(shù)據(jù)傳送過(guò)程中的串行通信協(xié)議設(shè)計(jì)的思想。鑒于目前國(guó)內(nèi)外各科研單位所研制的主要是電機(jī)自動(dòng)測(cè)試系統(tǒng),它僅用于電機(jī)的某特定試驗(yàn),功能比較單一,本系統(tǒng)在 該領(lǐng)域有一定獨(dú)創(chuàng)性。
評(píng)論