基于MC9S12XS128的嵌入式單元測(cè)試儀軟件開(kāi)發(fā)與實(shí)現(xiàn)
為保證彈載計(jì)算機(jī)中數(shù)字芯片的可靠性、安全性,必須在地面對(duì)其進(jìn)行單元測(cè)試。數(shù)字單元測(cè)試儀作為測(cè)試芯片性能最重要的技術(shù)設(shè)備,也迅速發(fā)展起來(lái),本文提出一種采用MC9S12XS128單片機(jī)作為某型號(hào)數(shù)字單元測(cè)試儀核心的設(shè)計(jì)方案,通過(guò)控制繼電器陣列實(shí)現(xiàn)不同測(cè)試電路或轉(zhuǎn)換電路的連接,嵌入式編程實(shí)現(xiàn)對(duì)被測(cè)機(jī)構(gòu)進(jìn)行不同參數(shù)測(cè)試或狀態(tài)轉(zhuǎn)換,并管理測(cè)試結(jié)果。
本文引用地址:http://2s4d.com/article/201609/303787.htmMC9S12XS128是一款的高性能16位單片機(jī),總線速度高達(dá)40 MHz;具有128 KB程序Flash和8 KB DataFlash,用于實(shí)現(xiàn)程序和數(shù)據(jù)存儲(chǔ),均帶有錯(cuò)誤校正碼(ECC);16通道高達(dá)12位精度的A/D采集模塊,支持8位、10位或12位多種精度,3μs的轉(zhuǎn)換時(shí)間;內(nèi)嵌MSCAN模塊用于CAN節(jié)點(diǎn)應(yīng)用,內(nèi)嵌支持LIN協(xié)議的增強(qiáng)型SCI模塊及SPI模塊;8通道PWM,易于實(shí)現(xiàn)電機(jī)控制;出色的低功耗特性,帶有中斷喚醒功能的IO,實(shí)現(xiàn)喚醒休眠系統(tǒng)的功能。
1 數(shù)字單元測(cè)試儀系統(tǒng)結(jié)構(gòu)
整個(gè)數(shù)字測(cè)試儀包含了四大部分:電源模塊、通信模塊、參數(shù)測(cè)量單元和主控制單元。其中,參數(shù)測(cè)量單元是整個(gè)數(shù)字單元測(cè)試儀的核心部件,參數(shù)測(cè)量單元直接決定著測(cè)試儀的參數(shù)測(cè)量精度和應(yīng)用范圍。電源模塊為測(cè)試儀配置CWY交流參數(shù)穩(wěn)壓電源(AC220 V,50 Hz),同時(shí)給測(cè)試儀和打印機(jī)供電,通信模塊使用專(zhuān)用測(cè)試電纜與被測(cè)機(jī)構(gòu)相連,測(cè)試電纜的41芯插頭與測(cè)試儀“機(jī)構(gòu)輸入”插頭相連,19芯插頭端與被測(cè)機(jī)構(gòu)相連。通過(guò)轉(zhuǎn)接板與LED顯示屏相連,輸出測(cè)試結(jié)果,用戶通過(guò)控制面板上的鍵盤(pán)控制該儀器完成各項(xiàng)性能測(cè)試。硬件系統(tǒng)結(jié)構(gòu)如圖1所示。
2 基于MC9S12XS128的嵌入式數(shù)字單元測(cè)試儀軟件設(shè)計(jì)
數(shù)字單元測(cè)試儀的軟件需要完成的主要功能包括:1)絕緣預(yù)檢。自動(dòng)檢查12項(xiàng)絕緣電阻;2)自動(dòng)測(cè)試。預(yù)檢合格后,自動(dòng)檢測(cè)兩個(gè)通道下各個(gè)電阻阻值及工作循環(huán)中狀態(tài)轉(zhuǎn)換結(jié)果;3)手動(dòng)測(cè)試。通過(guò)鍵盤(pán)操作,選取測(cè)試內(nèi)容進(jìn)行測(cè)試;4)數(shù)據(jù)管理。實(shí)現(xiàn)對(duì)測(cè)試數(shù)據(jù)顯示、打印及清除。
2.1 軟件設(shè)計(jì)流程
根據(jù)中斷處理機(jī)制和多線程編程來(lái)控制整個(gè)軟件的運(yùn)行流程。在整個(gè)程序啟動(dòng)之后,就一直處于循環(huán)等待的狀態(tài),等待中斷發(fā)生。當(dāng)測(cè)試者通過(guò)鍵盤(pán)按下按鍵,發(fā)生鍵盤(pán)中斷,程序查詢(xún)中斷向量表,跳轉(zhuǎn)到鍵盤(pán)中斷響應(yīng)服務(wù)子程序。在子程序中,判斷所按鍵值,并根據(jù)當(dāng)前狀態(tài)和所按鍵值在程序的各個(gè)模塊之間進(jìn)行切換,完成相應(yīng)操作。中斷服務(wù)子程序執(zhí)行完畢之后,退出中斷,程序指針?lè)祷刂鞒绦虻难h(huán)等待,等待下一次中斷發(fā)生。如此循環(huán)往復(fù),從而實(shí)現(xiàn)整個(gè)軟件的測(cè)試功能,直至退出測(cè)試功能。如圖2為主程序流程圖。
測(cè)試儀上電后初始化并進(jìn)入控制主界面,利用向上向下鍵移動(dòng)光標(biāo)選擇操作項(xiàng),按“確認(rèn)”鍵進(jìn)入測(cè)試。其中,絕緣預(yù)檢自動(dòng)檢查通道1、2的各項(xiàng)絕緣電阻,當(dāng)作動(dòng)源電壓一定時(shí),各項(xiàng)絕緣電阻是否在正常工作阻值范圍內(nèi)。絕緣預(yù)檢必須先于其他測(cè)試,預(yù)檢合格方可后續(xù)測(cè)試,否則禁止進(jìn)行后續(xù)測(cè)試。
手動(dòng)測(cè)試是各項(xiàng)測(cè)試中最復(fù)雜的,流程圖見(jiàn)圖3。分別測(cè)試通道1、2電阻以及電壓選擇與轉(zhuǎn)換。進(jìn)入手動(dòng)測(cè)試菜單窗口后,選擇“通道X(1或2)電阻測(cè)試”,按確認(rèn)鍵進(jìn)入測(cè)試窗口,同時(shí)測(cè)試儀自動(dòng)讀取指定通道當(dāng)前狀態(tài),如果處于保險(xiǎn)狀態(tài)則進(jìn)入“保險(xiǎn)狀態(tài)窗口”,如果處于工作狀態(tài)則進(jìn)入“工作狀態(tài)窗口”,通過(guò)向上向下鍵選擇窗口內(nèi)測(cè)試項(xiàng)目,使用“確認(rèn)”鍵進(jìn)行測(cè)試,按一次測(cè)試一次,可重復(fù)多次測(cè)試,光標(biāo)移到“轉(zhuǎn)換”位置,按“確認(rèn)”鍵后測(cè)試儀自動(dòng)讀取指定通道當(dāng)前所處狀態(tài)并進(jìn)行轉(zhuǎn)換。如果轉(zhuǎn)換成功窗口顯示5秒后自動(dòng)關(guān)閉并進(jìn)入另一狀態(tài)電阻測(cè)試窗口,如果轉(zhuǎn)換失敗窗口停留,等待用戶按鍵“返回”。當(dāng)選擇“通道X電壓與轉(zhuǎn)換”顯示相應(yīng)窗口,通過(guò)向上向下鍵選擇窗口內(nèi)三檔電壓及手動(dòng)調(diào)壓,按“確認(rèn)”鍵顯示轉(zhuǎn)換結(jié)果,包含轉(zhuǎn)換時(shí)間和轉(zhuǎn)換電流。
2.2 程序?qū)崿F(xiàn)
在CodeWarrior集成開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)測(cè)試儀軟件的開(kāi)發(fā),通過(guò)BDM(單線背景調(diào)試模式)在單片機(jī)運(yùn)行時(shí)對(duì)單片機(jī)動(dòng)態(tài)調(diào)試。軟件設(shè)計(jì)采用初始化+循環(huán)體的軟件結(jié)構(gòu),首先進(jìn)行全局變量和所用外設(shè)(包括IO、ADC、SPI、PWM、TLMER、SCI)的初始化,然后在循環(huán)體內(nèi)依次進(jìn)行絕緣預(yù)檢、手動(dòng)、自動(dòng)檢測(cè)以及數(shù)據(jù)管理。
初始化被定義在工程文件下init.c源文件內(nèi),包括設(shè)置晶振時(shí)鐘、總線時(shí)鐘及鎖相環(huán)時(shí)鐘均16 MHz,初始化I/O端口、串口SCIO、SCI1,串口速率9 600,可以中斷接收數(shù)據(jù),并對(duì)PWM、ECT、ATD模塊進(jìn)行初始化,初始化函數(shù)如下:
在common.c文件內(nèi)定義通用函數(shù),主要是與芯片無(wú)關(guān)的功能性子函數(shù),如顯示格式定義、光標(biāo)選擇等函數(shù),以下是Uart0_putchar函數(shù)用于串口發(fā)送單個(gè)字符,所有字符顯示調(diào)用的Show_order函數(shù)都是基于此函數(shù)。
2.3 測(cè)試結(jié)果
啟動(dòng)開(kāi)關(guān),初始化進(jìn)入主菜單,上下鍵選取測(cè)試項(xiàng),選定絕緣檢查后預(yù)檢過(guò)程中各項(xiàng)測(cè)試結(jié)果如圖4所示,共預(yù)檢通道1、2分別在保險(xiǎn)及工作狀態(tài)下絕緣電阻共48項(xiàng)。
自動(dòng)檢測(cè)結(jié)果如圖5所示,順序檢測(cè)通道1到2各狀態(tài)電阻,工作狀態(tài)與保險(xiǎn)狀態(tài)實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換,并顯示轉(zhuǎn)換時(shí)間與轉(zhuǎn)換電流。圖6是通道1從工作狀態(tài)轉(zhuǎn)換到保險(xiǎn)狀態(tài)結(jié)果示意圖。手動(dòng)測(cè)試是人工測(cè)試兩通道電阻測(cè)試和電壓選擇與轉(zhuǎn)換,電阻測(cè)試功能如圖7所示,選擇光標(biāo)所在行確認(rèn),即可顯示測(cè)試數(shù)據(jù),可重復(fù)測(cè)試。
評(píng)論