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