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