新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于MC9S12XS128的嵌入式單元測試儀軟件開發(fā)與實現

基于MC9S12XS128的嵌入式單元測試儀軟件開發(fā)與實現

作者: 時間:2016-09-12 來源:網絡 收藏

為保證彈載計算機中數字芯片的可靠性、安全性,必須在地面對其進行單元測試。作為測試芯片性能最重要的技術設備,也迅速發(fā)展起來,本文提出一種采用MC9S12XS128單片機作為某型號核心的設計方案,通過控制繼電器陣列實現不同測試電路或轉換電路的連接,編程實現對被測機構進行不同參數測試或狀態(tài)轉換,并管理測試結果。

本文引用地址:http://butianyuan.cn/article/201609/303787.htm

MC9S12XS128是一款的高性能16位單片機,總線速度高達40 MHz;具有128 KB程序Flash和8 KB DataFlash,用于實現程序和數據存儲,均帶有錯誤校正碼(ECC);16通道高達12位精度的A/D采集模塊,支持8位、10位或12位多種精度,3μs的轉換時間;內嵌MSCAN模塊用于CAN節(jié)點應用,內嵌支持LIN協議的增強型SCI模塊及SPI模塊;8通道PWM,易于實現電機控制;出色的低功耗特性,帶有中斷喚醒功能的IO,實現喚醒休眠系統(tǒng)的功能。

1 系統(tǒng)結構

整個數字測試儀包含了四大部分:電源模塊、通信模塊、參數測量單元和主控制單元。其中,參數測量單元是整個數字單元測試儀的核心部件,參數測量單元直接決定著測試儀的參數測量精度和應用范圍。電源模塊為測試儀配置CWY交流參數穩(wěn)壓電源(AC220 V,50 Hz),同時給測試儀和打印機供電,通信模塊使用專用測試電纜與被測機構相連,測試電纜的41芯插頭與測試儀“機構輸入”插頭相連,19芯插頭端與被測機構相連。通過轉接板與LED顯示屏相連,輸出測試結果,用戶通過控制面板上的鍵盤控制該儀器完成各項性能測試。硬件系統(tǒng)結構如圖1所示。

基于MC9S12XS128的嵌入式單元測試儀軟件開發(fā)與實現

2 基于MC9S12XS128的數字單元測試儀軟件設計

數字單元測試儀的軟件需要完成的主要功能包括:1)絕緣預檢。自動檢查12項絕緣電阻;2)自動測試。預檢合格后,自動檢測兩個通道下各個電阻阻值及工作循環(huán)中狀態(tài)轉換結果;3)手動測試。通過鍵盤操作,選取測試內容進行測試;4)數據管理。實現對測試數據顯示、打印及清除。

2.1 軟件設計流程

根據中斷處理機制和多線程編程來控制整個軟件的運行流程。在整個程序啟動之后,就一直處于循環(huán)等待的狀態(tài),等待中斷發(fā)生。當測試者通過鍵盤按下按鍵,發(fā)生鍵盤中斷,程序查詢中斷向量表,跳轉到鍵盤中斷響應服務子程序。在子程序中,判斷所按鍵值,并根據當前狀態(tài)和所按鍵值在程序的各個模塊之間進行切換,完成相應操作。中斷服務子程序執(zhí)行完畢之后,退出中斷,程序指針返回主程序的循環(huán)等待,等待下一次中斷發(fā)生。如此循環(huán)往復,從而實現整個軟件的測試功能,直至退出測試功能。如圖2為主程序流程圖。

基于MC9S12XS128的嵌入式單元測試儀軟件開發(fā)與實現

測試儀上電后初始化并進入控制主界面,利用向上向下鍵移動光標選擇操作項,按“確認”鍵進入測試。其中,絕緣預檢自動檢查通道1、2的各項絕緣電阻,當作動源電壓一定時,各項絕緣電阻是否在正常工作阻值范圍內。絕緣預檢必須先于其他測試,預檢合格方可后續(xù)測試,否則禁止進行后續(xù)測試。

手動測試是各項測試中最復雜的,流程圖見圖3。分別測試通道1、2電阻以及電壓選擇與轉換。進入手動測試菜單窗口后,選擇“通道X(1或2)電阻測試”,按確認鍵進入測試窗口,同時測試儀自動讀取指定通道當前狀態(tài),如果處于保險狀態(tài)則進入“保險狀態(tài)窗口”,如果處于工作狀態(tài)則進入“工作狀態(tài)窗口”,通過向上向下鍵選擇窗口內測試項目,使用“確認”鍵進行測試,按一次測試一次,可重復多次測試,光標移到“轉換”位置,按“確認”鍵后測試儀自動讀取指定通道當前所處狀態(tài)并進行轉換。如果轉換成功窗口顯示5秒后自動關閉并進入另一狀態(tài)電阻測試窗口,如果轉換失敗窗口停留,等待用戶按鍵“返回”。當選擇“通道X電壓與轉換”顯示相應窗口,通過向上向下鍵選擇窗口內三檔電壓及手動調壓,按“確認”鍵顯示轉換結果,包含轉換時間和轉換電流。

2.2 程序實現

上實現測試儀軟件的開發(fā),通過BDM()在單片機運行時對單片機動態(tài)調試。軟件設計采用初始化+循環(huán)體的軟件結構,首先進行全局變量和所用外設(包括IO、ADC、SPI、PWM、TLMER、SCI)的初始化,然后在循環(huán)體內依次進行絕緣預檢、手動、自動檢測以及數據管理。

初始化被定義在工程文件下init.c源文件內,包括設置晶振時鐘、總線時鐘及鎖相環(huán)時鐘均16 MHz,初始化I/O端口、串口SCIO、SCI1,串口速率9 600,可以中斷接收數據,并對PWM、ECT、ATD模塊進行初始化,初始化函數如下:

基于MC9S12XS128的嵌入式單元測試儀軟件開發(fā)與實現

在common.c文件內定義通用函數,主要是與芯片無關的功能性子函數,如顯示格式定義、光標選擇等函數,以下是Uart0_putchar函數用于串口發(fā)送單個字符,所有字符顯示調用的Show_order函數都是基于此函數。

基于MC9S12XS128的嵌入式單元測試儀軟件開發(fā)與實現

2.3 測試結果

啟動開關,初始化進入主菜單,上下鍵選取測試項,選定絕緣檢查后預檢過程中各項測試結果如圖4所示,共預檢通道1、2分別在保險及工作狀態(tài)下絕緣電阻共48項。

基于MC9S12XS128的嵌入式單元測試儀軟件開發(fā)與實現

自動檢測結果如圖5所示,順序檢測通道1到2各狀態(tài)電阻,工作狀態(tài)與保險狀態(tài)實現自動轉換,并顯示轉換時間與轉換電流。圖6是通道1從工作狀態(tài)轉換到保險狀態(tài)結果示意圖。手動測試是人工測試兩通道電阻測試和電壓選擇與轉換,電阻測試功能如圖7所示,選擇光標所在行確認,即可顯示測試數據,可重復測試。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉