鄒良昌
摘 要:回旋加速器是為檢測大型集裝箱及容器實(shí)時(shí)成像而設(shè)計(jì)的。它還可以應(yīng)用于無損檢測的其他領(lǐng)域,使用直線探測器線陣檢測高厚工件,及科學(xué)研究。該設(shè)計(jì)是基于飛思卡爾MC68HC908MR32作為加速器的主控制板核心處理器;此MCU運(yùn)行速度快硬件資源豐富,10路10位A/D用于劑量率、電子能量、溫度等模擬量信號采集,16位共6通道定時(shí)器用于產(chǎn)生加速器主頻電壓、電子能量等時(shí)序脈沖,擴(kuò)展AD5724四通道D/A用于模擬量輸出;DS1305用于保存自動搜索最大輻射劑量率的D/A數(shù)據(jù);該文概要闡述了便攜式回旋加速器的單片機(jī)C程序設(shè)計(jì)方法。
關(guān)鍵詞:MC68HC908MR32 回旋加速器 自動搜索 程序設(shè)計(jì) AD5724
中圖分類號:TP311.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2017)06(c)-0158-02
MC68HC908MR32是8位低成本,高性能M68HC08系列中的一員;除摘要內(nèi)介紹的特點(diǎn),還有大容量存儲32KB片內(nèi)Flash存儲器,768B片內(nèi)RAM,非常適合編寫C程序; 8 MHz內(nèi)部總線頻率能夠滿足信號處理及控制的速度要求,還含有串行外設(shè)接口模塊(SPI)和串行通信接口模塊(SCI)等接口。AD5724R是四通道12位電壓輸出數(shù)模轉(zhuǎn)換器(DAC),采用雙電源±12V供電,軟件選標(biāo)稱滿量程輸出范圍±10V,采用SPI接口能以最高30MHz的時(shí)鐘速率和MCU通訊,本控制板用3路模擬量輸出。DS1305時(shí)鐘電路采用雙電源供電,掉電后由電池供電,具有SPI接口MCU可與之通訊讀寫數(shù)據(jù),內(nèi)部96字節(jié)掉電存儲器用來存儲最大劑量率的三路D/A數(shù)據(jù)。
該文結(jié)合DAC和ADC及其他硬件,著重介紹在CodeWarriorforMicrocontrollers V6.3編譯環(huán)境下的回旋加速器C程序設(shè)計(jì)流程及自動搜索最大劑量率的算法。
1 單片機(jī)程序的基本架構(gòu)
1.1 各部分功能介紹
通訊程序包括控制命令,如啟動、停止、復(fù)位等;設(shè)置參數(shù);讀取參數(shù);讀取工作狀態(tài)及故障報(bào)警信息。定時(shí)中斷部分是用來產(chǎn)生加速器時(shí)的脈沖波形,包括主頻脈沖時(shí)序;主磁極脈沖時(shí)序;偏轉(zhuǎn)脈沖時(shí)序等;自動搜索最大劑量率采用遍歷算法,搜索完畢后將最大劑量率保存至DS1305中掉電存儲;模擬量信號采集包括最大能量、劑量率、注入電流和溫度等的采集, 溫度采集用查表方法讀取溫度,在單片機(jī)中做上限報(bào)警溫度設(shè)定和允許開機(jī)的下限溫度設(shè)定,同時(shí)實(shí)時(shí)供上位機(jī)讀取當(dāng)前溫度值顯示。擬量輸出包括燈絲電壓控制,注入電壓控制,聚攏電壓控制;為了及時(shí)反映設(shè)備的運(yùn)行狀況,保護(hù)人員安全,當(dāng)設(shè)備異常時(shí)及時(shí)保護(hù)設(shè)備并提示設(shè)備操作人員,達(dá)到及時(shí)維護(hù)或維修設(shè)備的目的,因此做了全面的故障報(bào)警程序,包括開關(guān)信號、電壓、電流等保護(hù)。
1.2 自動搜索最大劑量率的算法解析
所謂遍歷(Traversal),是指沿著某條搜索路線,依次對樹中每個(gè)結(jié)點(diǎn)均做一次且僅做一次訪問。此方法應(yīng)用在自動搜索最大劑量率上可以省去調(diào)節(jié)硬件的麻煩,精確尋找到最佳劑量率的參數(shù)匹配。結(jié)合實(shí)際情況為一個(gè)二維數(shù)組的遍歷,本控制板采用先粗條后細(xì)調(diào)的方法自動搜索最大劑量率,實(shí)現(xiàn)此算法的C程序如下:
while (injectionAdjustnumber>0)
{
contractordata=contractordataunadjusted;
Data_ contractordata (contractordata);
contractorAdjustnumberbuff=contractorAdjustnumber;
while (contractorAdjustnumberbuff>0)
{
currentdoserata=Data_L955A();
if(currentdoserata>lastdoserata)
{
lastdoserata=currentdoserata;
contractordatabuff=contractordata;
injectiondatabuff=injectiondata;
} contractordata=Data_voltageSub(contractordata,contractorAdjustingstep);
Data_contractordata(contractordata);
contractorAdjustnumberbuff--;
} injectiondata=Data_voltageSub(injectiondata,injectionAdjustingstep);
Data_ injectiondata (injectiondata);
injectionAdjustnumber--;
}
實(shí)測程序控制兩個(gè)模擬量電壓波形圖1。
2 結(jié)語
該文介紹了MC68HC908MR32在便攜式回旋加速器上的程序設(shè)計(jì)方案,硬件資源和性能適合并滿足此設(shè)備的設(shè)計(jì)要求。飛思卡爾半導(dǎo)體公司(原Motorola公司半導(dǎo)體產(chǎn)品部)的M68HC08系列單片機(jī)在很多應(yīng)用領(lǐng)域內(nèi)都表現(xiàn)出低成本、高性能的特點(diǎn),它的體系結(jié)構(gòu)為產(chǎn)品開發(fā)了節(jié)省了大量時(shí)間,此單片機(jī)提供了多種集成模塊,充分發(fā)揮了它的靈活性。
參考文獻(xiàn)
[1] 常越.M68HC08單片機(jī)原理及C語言開發(fā)勢例[M].北京:北京航空航天大學(xué)出版社,2005.
[2] 王秀芳,于隨然,李元超.基于單片機(jī)MC68HC908的后視鏡電控系統(tǒng)的設(shè)計(jì)[J].儀表技術(shù),2007(11):76.
[3] 孫保平.通用M68HC08 MCU編程器的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2010.endprint