摘 要: 傳統(tǒng)的航向姿態(tài)、導(dǎo)航系統(tǒng)都以機(jī)械儀表為主,用來(lái)顯示接收的自整角機(jī)、旋轉(zhuǎn)變壓器信號(hào)既不精確也不穩(wěn)定。通過(guò)設(shè)計(jì)一種接口電路成功將液晶屏應(yīng)用于航向指示器,修正了上述缺點(diǎn)。測(cè)試表明指示器顯示清晰,系統(tǒng)功能完整、穩(wěn)定。
關(guān)鍵詞: 航向指示器;液晶屏;單片機(jī);CPLD;自整角機(jī);旋轉(zhuǎn)變壓器;A/D;D/A
在各種航向姿態(tài)、導(dǎo)航系統(tǒng)中,常用自整角機(jī)、旋轉(zhuǎn)變壓器實(shí)現(xiàn)磁航向、無(wú)線電方位的接收、傳輸、調(diào)整和顯示。但以往的機(jī)載儀表以機(jī)械儀表為主,存在顯示分辨率低、指示不夠精確的問(wèn)題。近年來(lái),液晶顯示器得到飛速發(fā)展,因其體積小、功耗低、開發(fā)周期短、安全可靠、使用靈活的特點(diǎn)而廣泛應(yīng)用于各種儀器儀表中。本文通過(guò)設(shè)計(jì)一種接口電路,成功地將液晶屏應(yīng)用于航向指示器,測(cè)試表明該指示器可穩(wěn)定接收航向等自整角機(jī)、旋轉(zhuǎn)變壓器信號(hào),傳輸給指示器的圖形板并在液晶屏上顯示。
指示器設(shè)有液晶屏亮度、模式等控制按鍵,考慮到傳統(tǒng)單片機(jī)系統(tǒng)所需芯片數(shù)多、系統(tǒng)線復(fù)雜,而CPLD在結(jié)構(gòu)、工藝、集成度、功能、速度和靈活性等方面都有了很大的改進(jìn)和提高,為高效率、高質(zhì)量、靈活地設(shè)計(jì)單片機(jī)系統(tǒng)提供了可能,特別是CPLD的系統(tǒng)編程、測(cè)試能力和支持JATG邊界掃描的特點(diǎn),以及具有JATG功能的單片機(jī)構(gòu)成的功能電路,更能體現(xiàn)系統(tǒng)可編程的方便靈活的優(yōu)越性。因此本接口電路采用了單片機(jī)C8051F020和可編程邏輯器件(CPLD),完成的接口電路外加一塊圖形處理芯片就能實(shí)現(xiàn)液晶顯示的航向指示器系統(tǒng)。
1 硬件設(shè)計(jì)
以自整角機(jī)信號(hào)為例,硬件電路如圖1。C8051F020是Cygnal推出的一種混合信號(hào)系統(tǒng)級(jí)單片機(jī),片內(nèi)含CIP-51的CPU內(nèi)核,其指令系統(tǒng)與MCS-51完全兼容。與以前的51系列單片機(jī)相比,C8051F020增加了許多功能,并且可靠性和速度也有了很大提高[1]。這里采用它來(lái)處理數(shù)據(jù)、驅(qū)動(dòng)液晶屏,通過(guò)串口把數(shù)據(jù)送到液晶屏。可編程邏輯芯片則用于邏輯控制數(shù)據(jù)的輸入輸出。
在數(shù)據(jù)處理方面,根據(jù)精度要求,對(duì)于自整角機(jī)信號(hào)的A/D轉(zhuǎn)換,采用中國(guó)船舶重工集團(tuán)七一六所研制的14ZSZ系列和14SZZ系列轉(zhuǎn)換器,14位分辨率可滿足要求。當(dāng)輸入兩路同類的自整角機(jī)信號(hào)時(shí),可選擇具有雙通道的轉(zhuǎn)換器,這樣有利于減少電路的面積。接口電路將輸入的自整角機(jī)信號(hào)數(shù)字解算得到數(shù)字輸出,最后將此數(shù)字輸出經(jīng)過(guò)D/A轉(zhuǎn)換器14SZZ從接口電路輸出。
CPLD程序用VHDL語(yǔ)言實(shí)現(xiàn),根據(jù)單片機(jī)中對(duì)輸入數(shù)據(jù)的地址定義,將地址值作為敏感信號(hào),產(chǎn)生單通道A/D模塊的高低字節(jié)片選信號(hào),將14ZSZ芯片A/D轉(zhuǎn)換結(jié)果讀入緩存;對(duì)沒(méi)有高低字節(jié)選擇信號(hào)的雙通道A/D模塊,則產(chǎn)生禁止/使能信號(hào),將14ZSZ/S02芯片A/D轉(zhuǎn)換結(jié)果讀入緩存。輸入信號(hào)進(jìn)入緩存后,CPLD根據(jù)地址值將輸入信號(hào)從緩存寫入單片機(jī)。
輸入信號(hào)進(jìn)入單片機(jī)后,解算得到數(shù)字輸出信號(hào)。CPLD根據(jù)地址值從單片機(jī)將數(shù)字輸出寫入緩存,然后根據(jù)地址敏感信號(hào)產(chǎn)生D/A轉(zhuǎn)換芯片的控制信號(hào),根據(jù)控制信號(hào)把數(shù)字輸出送入D/A轉(zhuǎn)換芯片14SZZ。
模數(shù)轉(zhuǎn)換器的直流電源允許波動(dòng)范圍為±10%,不能超過(guò)此范圍加電。要求PCB板的+5V、+15V、-15V和GND之間分別并聯(lián)一個(gè)0.1μF和一個(gè)6.8μF的濾波電容。單片機(jī)的XTAL1引腳為晶體或陶瓷諧振器內(nèi)部反饋電路的反饋輸入。為了得到一個(gè)精確的內(nèi)部時(shí)鐘,需要在XTAL1引腳加入一個(gè)晶體或陶瓷諧振器。
1.1 A/D、D/A轉(zhuǎn)換模塊
自整角機(jī)、旋轉(zhuǎn)變壓器是一種高精度、高可靠性的角度傳感器,為了實(shí)現(xiàn)與計(jì)算機(jī)的接口,國(guó)外開發(fā)了SDC/RDC系列自整角機(jī)、旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器。國(guó)內(nèi)相應(yīng)研制開發(fā)了ZSZ/XSZ系列。本設(shè)計(jì)采用了14ZSZ/XSZ,轉(zhuǎn)換器精度360°/214≈0.022°,滿足系統(tǒng)指標(biāo)。當(dāng)模擬量被轉(zhuǎn)換成數(shù)字量后,接口電路又需要將某路含有航向控制系統(tǒng)需要用到的角度、位置等信息的數(shù)字量轉(zhuǎn)換為模擬量輸出,這里采用14SZZ/SXZ將數(shù)字量轉(zhuǎn)換為模擬量并從指示器輸出,用于控制航向系統(tǒng)位置、速度等。
1.1.1 14ZSZ/XSZ A/D轉(zhuǎn)換器[2]
14ZSZ/XSZ是一種小型化14位連續(xù)跟蹤自整角機(jī)/旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器。它采用二階伺服回路,數(shù)據(jù)輸出具有三態(tài)鎖存功能,轉(zhuǎn)換原理如圖2。當(dāng)BUSY=0時(shí),數(shù)據(jù)穩(wěn)定,可取數(shù)據(jù);BUSY=1時(shí),數(shù)據(jù)在變化,不能取數(shù)據(jù);INH=0時(shí),數(shù)據(jù)穩(wěn)定,可取數(shù)據(jù);INH=1時(shí),刷新鎖存器;轉(zhuǎn)換器控制信號(hào)由選擇使能信號(hào)、字節(jié)選擇信號(hào)BYSEL進(jìn)行控制。使能信號(hào)是邏輯高電平,輸出為高阻狀態(tài);使能信號(hào)為邏輯低電平,輸出數(shù)字角Φ。字節(jié)選擇信號(hào)BYSEL是邏輯高電平,1~8位輸出數(shù)字角D1~D8,9~14位輸出數(shù)字角D9~D14;字節(jié)選擇信號(hào)BYSEL是邏輯低電平,1~8位輸出數(shù)字角D9~D14。
雙通道14位跟蹤型自整角機(jī)/旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器14ZSZ/XSZ-S02是為要求體積小、重量輕、費(fèi)用低的應(yīng)用場(chǎng)合而設(shè)計(jì)。每路輸入可以是自整角機(jī)/旋轉(zhuǎn)變壓器信號(hào),并且具有兩個(gè)獨(dú)立的參考輸入端,因而每個(gè)通道可以具有不同的參考頻率。經(jīng)三態(tài)鎖存器輸出與TTL電平兼容的14位并行自然二進(jìn)制碼,在數(shù)據(jù)讀取時(shí)無(wú)須中斷轉(zhuǎn)換過(guò)程。該模塊有A_B和/OE控制線選擇通道[2],并將相應(yīng)轉(zhuǎn)換結(jié)果送到公共數(shù)據(jù)輸出端口。轉(zhuǎn)換器檢測(cè)/BIT[2]輸出信號(hào)可用于不間斷系統(tǒng),以指示轉(zhuǎn)換器是否處于精確跟蹤狀態(tài)。A_B=1,選CHA;A_B=0,選CHB; OE=0,數(shù)據(jù)有效;OE=1,DB1~DB14高阻。該模塊沒(méi)有高低字節(jié)選擇信號(hào)。
1.1.2 14SZZ/SXZ 數(shù)字-自整角機(jī)轉(zhuǎn)換器[2]
14SZZ/SXZ將14位自然二進(jìn)制數(shù)字角度量轉(zhuǎn)換成含有該數(shù)字角度量的自整角機(jī)/旋轉(zhuǎn)變壓器形式的模擬電壓輸出,如圖3。ENH控制高8位,ENL控制低6位;ENH/ENL=1,轉(zhuǎn)換器輸出隨輸入量變化,ENH/ENL同時(shí)等于0,轉(zhuǎn)換器輸出鎖存為下降沿時(shí)刻。14位自然二進(jìn)制數(shù)字角度量采用了TTL/CMOS數(shù)字鎖存,輸入和輸出交流信號(hào)采用輸入、輸出變壓器隔離。這樣,使得轉(zhuǎn)換器在使用中不用外加數(shù)字鎖存器,不用外接參考變壓器和輸出變壓器,可廣泛應(yīng)用與數(shù)字至軸角量的轉(zhuǎn)換,是計(jì)算機(jī)與控制系統(tǒng)之間的理想接口電路。
1.2 電源管理模塊
系統(tǒng)的其他部分器件型號(hào)確定后,所需的功率、電流、電壓大小便確定了,最后設(shè)計(jì)電源系統(tǒng)以保證系統(tǒng)可靠運(yùn)行。由于電路的頻率特性,電磁輻射、噪音會(huì)干擾到達(dá)電路器件的工作電壓,而一些芯片對(duì)工作電壓的要求非常高(一般要求電壓偏差不超過(guò)5%),一旦超過(guò)范圍長(zhǎng)時(shí)間工作則容易縮短壽命甚至損壞。因此,在電路中需要設(shè)計(jì)實(shí)時(shí)監(jiān)控電壓的電壓監(jiān)控電路,為芯片提供合格而穩(wěn)定的電壓。
本設(shè)計(jì)采用低壓差線性穩(wěn)壓器LT1117IST-3.3給系統(tǒng)中對(duì)電壓要求高的芯片提供穩(wěn)定電壓。但僅有完美供電系統(tǒng)是不夠的,有時(shí)VCC上一個(gè)很小的壓降就可能破壞存儲(chǔ)器﹑內(nèi)部寄存器中的內(nèi)容,但卻并不產(chǎn)生復(fù)位,從而造成軟件的誤動(dòng)作。因此,在系統(tǒng)中加入電源監(jiān)控電路TPS3307以保障系統(tǒng)長(zhǎng)期穩(wěn)定運(yùn)行。
2 軟件設(shè)計(jì)
電路中,單片機(jī)軟件編程完成的工作有:與液晶屏的通信、加熱控制、亮度控制、按鍵檢測(cè)及處理、數(shù)據(jù)處理、數(shù)據(jù)傳輸、顯示界面的控制。
2.1 初始化單元
系統(tǒng)上電后,先對(duì)看門狗初始化,喂狗時(shí)間間隔為47.406ms;初始化CPU端口,將P0.0、P0.1分配給串口0,將P0.2、P0.3分配給串口1;配置系統(tǒng)時(shí)鐘為外部時(shí)鐘,選取22.118 4MHz晶振;初始化串口1,波特率為9 600B;設(shè)置定時(shí)器,每35ms中斷一次;最后初始化中斷系統(tǒng),將所有中斷全部禁止。
2.2 數(shù)據(jù)處理顯示單元
輸入數(shù)據(jù)經(jīng)過(guò)A/D模塊轉(zhuǎn)換成14位數(shù)字信號(hào),如角度信號(hào)0°~360°對(duì)應(yīng)輸出數(shù)值0~214。該序列數(shù)字信號(hào)由CPLD按高、低字節(jié)或一次性讀入緩存,緩存再按高、低字節(jié)寫入單片機(jī)的數(shù)據(jù)總線。單片機(jī)將高低字節(jié)合并送到顯示屏,并根據(jù)顯示要求處理,使得液晶屏讀數(shù)與模擬輸入對(duì)應(yīng),如圖形板0x8000對(duì)應(yīng)360°,則A/D轉(zhuǎn)換結(jié)果要右移2位。同理,輸出數(shù)字信號(hào)由CPLD從單片機(jī)按字節(jié)讀入緩存,再?gòu)木彺孑敵龅紻/A轉(zhuǎn)換器。
2.3 定時(shí)工作及存儲(chǔ)器初始化單元
定時(shí)單元改變個(gè)別全局變量值,用于其他部分定時(shí)的需求,并對(duì)系統(tǒng)按鍵進(jìn)行定時(shí)識(shí)別。按鍵采用查詢的方法判斷是否真的有鍵被按下,以長(zhǎng)按或短按決定數(shù)據(jù)變化速度快慢。本電路中共有5個(gè)按鍵,可看作1×5行列式鍵盤。存儲(chǔ)器單元用于將雙口RAM存儲(chǔ)器清空。
2.4 通信模塊
單片機(jī)通過(guò)串口1與液晶屏通信,包括液晶屏控制、亮度、溫度讀寫的操作子模塊,流程如圖4。
通信流程如圖5,每送一個(gè)字節(jié)液晶屏的讀寫命令,液晶屏便會(huì)返回一個(gè)字節(jié)表示溫度或狀態(tài)的數(shù)據(jù),根據(jù)返回?cái)?shù)值執(zhí)行下一個(gè)動(dòng)作。讀取液晶屏狀態(tài)可以獲得溫度傳感器是否工作的信息。設(shè)置背光燈溫度,要先判斷溫度傳感器是否有效,如無(wú)效則關(guān)閉加熱電源,否則會(huì)損壞器件;同時(shí)將默認(rèn)的自動(dòng)模式改為人工模式,以免系統(tǒng)反復(fù)試圖加熱。設(shè)置燈控制時(shí),液晶屏返回兩個(gè)不同值用于設(shè)置白天或夜晚模式。讀取液晶屏溫度后,根據(jù)大小值判斷是否需要加熱,通常不應(yīng)低于0℃。
2.5 單片機(jī)主程序模塊
主程序流程如圖6,先清空雙口RAM,查詢液晶屏溫度等狀態(tài),小于0°且溫度傳感器有效則開加熱電源,通過(guò)串口1對(duì)液晶屏進(jìn)行初始化設(shè)置,自檢測(cè)后,讀取輸入的信號(hào)并進(jìn)行處理,傳輸給液晶屏顯示,將數(shù)字信號(hào)轉(zhuǎn)換為模擬輸出。對(duì)亮度等按鍵進(jìn)行處理,當(dāng)長(zhǎng)按時(shí),按鍵計(jì)數(shù)而不改變相應(yīng)的值,松手后才改變亮度等值,這就實(shí)現(xiàn)了長(zhǎng)按數(shù)據(jù)變化加快的功能。
本文提出的基于單片機(jī)和CPLD的液晶航向指示器的接口電路設(shè)計(jì),能夠處理自整角機(jī)、旋轉(zhuǎn)變壓器、電壓電流計(jì)信號(hào)等模擬輸入,能夠接收系統(tǒng)的按鍵控制,與液晶屏通信正常,顯示清晰正確,輸出數(shù)據(jù)正確。設(shè)計(jì)方案在實(shí)際產(chǎn)品中得到應(yīng)用,并取得良好的通信和顯示效果。
參考文獻(xiàn)
[1] 潘琢金.C8051F020/1/2/3混合信號(hào)ISP FLASH微控制器數(shù)據(jù)手冊(cè).沈陽(yáng)新華龍電子有限公司,2002.
[2] 連云港杰瑞電子有限公司.2007數(shù)據(jù)手冊(cè)—軸角分冊(cè),2007.