現(xiàn)如今,LCD觸摸屏越來越普及,逐漸成為當(dāng)今的主流配置,其在艦艇武器裝備的手持檢測(cè)設(shè)備上的應(yīng)用也越來越廣泛。觸摸屏分為電阻式、電容式、表面聲波式和紅外線掃描式等類型,其中使用最多的是電阻觸摸屏.四線電阻式觸摸屏由兩個(gè)透明電阻膜構(gòu)成.在它的水平和垂直電阻網(wǎng)上施加電壓.就可通過A/D轉(zhuǎn)換在觸摸點(diǎn)測(cè)量出電壓從而對(duì)應(yīng)得到相應(yīng)的二維坐標(biāo)值。本文針對(duì)觸摸屏接口芯片ADS7843的功能特性.重點(diǎn)探討觸摸屏控制器應(yīng)用中的相關(guān)問題.同時(shí)給出其與ATmega64微處理器的通訊實(shí)現(xiàn)和軟硬件設(shè)計(jì)。 1 ADS7843控制芯片內(nèi)部結(jié)構(gòu)及主要功能 ADS7843之所以能實(shí)現(xiàn)對(duì)觸摸屏的控制。是因?yàn)槠鋬?nèi)部結(jié)構(gòu)很容易實(shí)現(xiàn)電極電壓的切換,并能進(jìn)行快速A/D轉(zhuǎn)換。圖1為其內(nèi)部結(jié)構(gòu)示意圖。 ![]() 圖1 ADS7843控制芯片內(nèi)部結(jié)構(gòu)示意圖 顯然.觸摸屏的控制芯片要完成兩件事:其一、完成電極電壓的切換;其二、采集接觸點(diǎn)處的電壓值,即A/D轉(zhuǎn)換。BurrBrown公司生產(chǎn)的ADS7843芯片是一個(gè)內(nèi)置12位模數(shù)轉(zhuǎn)換、低導(dǎo)通電阻模擬開關(guān)的串行接口芯片,供電電壓2.7~5 V,最高轉(zhuǎn)換速率為125 kHz,在125 kHz轉(zhuǎn)換速率和2.7 V供電電壓下的功耗為750μW.在關(guān)閉模式下的功耗為0.5μW,顯見ADS7843的低功耗、高速率和在便攜式檢測(cè)設(shè)備上的良好適用性。 ![]() 圖2觸點(diǎn)坐標(biāo)()【軸或Y軸)獲取子程序流程圖 AD57843通過連接觸摸屏x+將觸摸信號(hào)輸入到A/D轉(zhuǎn)換器.同時(shí)打開Y+和Y一驅(qū)動(dòng),然后數(shù)字化X+電壓,得到當(dāng)前Y位置的測(cè)量結(jié)果:同理也可得到X方向的坐標(biāo)。實(shí)際上ADS7843控制器分時(shí)向X、Y電極對(duì)施加電壓.并把測(cè)量電極上的電壓信號(hào)轉(zhuǎn)換為相應(yīng)觸摸點(diǎn)的X、Y坐標(biāo)。 ADS7843根據(jù)微控制器發(fā)來的不同測(cè)量命令導(dǎo)通相應(yīng)的模擬開關(guān)。以便向觸摸屏電極對(duì)提供電壓,并把相應(yīng)電極上的觸點(diǎn)坐標(biāo)位置所對(duì)應(yīng)的電壓模擬量引入A/D轉(zhuǎn)換器,完成一次電極電壓切換和A/D轉(zhuǎn)換.需要通過串口往ADS7843發(fā)送控制字,轉(zhuǎn)換完成后再通過串口讀出電壓轉(zhuǎn)換值。 2 ATmega64微處理器的功能特性 實(shí)際的觸摸屏輸入系統(tǒng)由觸摸屏、觸摸屏控制器和微控制器三部分組成。前文已提及觸摸屏和觸摸屏控制器,至于微控制器—應(yīng)用系統(tǒng)的核心控制部件。它的選擇將在很大程度上影響系統(tǒng)的整體性能。ATmega64是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間使ATmega64的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。 作為一類高性能、低功耗的8位AVR微處理器。ATmega64內(nèi)部有以下非易失性程序和數(shù)據(jù)存儲(chǔ)器:64K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力1.擦寫壽命達(dá)10000次,2K字節(jié)EEPROM。4K字節(jié)片內(nèi)SRAM,64K字節(jié)可選外部存儲(chǔ)空間。ATmega64的指令有130條.且大多數(shù)指令執(zhí)行時(shí)間為單個(gè)時(shí)鐘周期。另外其有32個(gè)8位通用工作寄存器,53個(gè)可編程的I/0口,具有獨(dú)立振蕩器的實(shí)時(shí)計(jì)數(shù)器(RTC),可工作于主機(jī)/從機(jī)模式的SPI串行接口,8路10位具有可選差分輸入級(jí)可編程增益的ADC。 ATmega64與ADS7843采用串行通訊接口SPI通訊。串行外設(shè)接口 SPI允許ATmega64和外設(shè)之間進(jìn)行高速的同步數(shù)據(jù)傳輸。ATmega64 SPI的特點(diǎn)是:全雙工。3線同步數(shù)據(jù)傳輸,主機(jī)或從機(jī)操作.LSB首先發(fā)送或MSB首先發(fā)送可選.7種可編程的比特率。傳輸結(jié)束中斷。 3 應(yīng)用系統(tǒng)的硬件連接及控制實(shí)現(xiàn) 艦艇武器裝備的手持檢測(cè)設(shè)備上的實(shí)際觸摸屏輸入系統(tǒng).采用四線電阻式觸摸屏.觸摸屏控制器采用ADS7843,微控制器用ATmega64。 當(dāng)屏觸發(fā)生時(shí),ADS7843向ATmega64發(fā)出中斷請(qǐng)求,由ATmega64響應(yīng)該中斷請(qǐng)求.啟動(dòng)通信過程,讀取ADS7843的轉(zhuǎn)換結(jié)果,從而獲取屏觸點(diǎn)坐標(biāo)。通過將ss引腳電平的拉低。微處理器啟動(dòng)一次通訊過程.它將需要發(fā)送的數(shù)據(jù)放入相應(yīng)的移位寄存器,同時(shí),微處理器在SCK引腳上產(chǎn)生時(shí)鐘脈沖以交換數(shù)據(jù)擻據(jù)從微處理器的MOSI移出.從MISO移入。 由于ADS7843各信號(hào)的時(shí)序受外部輸入時(shí)鐘信號(hào)頻率的影響.因此ATmega64與ADS7843之間的SPI數(shù)據(jù)需要配置確定的傳送時(shí)序。對(duì)SPI數(shù)據(jù)寄存器SPDR寫人數(shù)據(jù)即啟動(dòng)SPI時(shí)鐘,將8比特的數(shù)據(jù)移入ADS7843。傳輸結(jié)束后SPI時(shí)鐘停止.傳輸結(jié)束標(biāo)志SPIF置位。如果此時(shí)SPI控制寄存器SPCR的中斷使能位SPIE置位.中斷就會(huì)發(fā)生。圖2、圖3分別給出了觸點(diǎn)坐標(biāo)(x軸或Y軸)獲取子程序的流程和屏觸中斷服務(wù)程序的流程。 ![]() 圖3屏觸中斷服務(wù)程序流程圖 實(shí)現(xiàn)圖3流程的具體程序?yàn)椋?br /> #define spiiflag SPSR_Bit7 #define spi_busy PINB_Bit4 void delayms(uchar mst) /*毫秒延時(shí)程序*/ { uint i=0; uchar j; for {j=0;j { asm("nop");} } void spi_init(void) /*SPI傳送初始化設(shè)置*/ { SPCR=(1< } void SPI_MasterTransmit(char cData) /*SPI主機(jī)傳輸函數(shù)*/ { SPDR=cData; while(!spiiflag); spiiflag=0; } unsigned int Get_Touch_Ad(unsigned char channel) /*讀取轉(zhuǎn)換結(jié)果*/ { unsigned int ad_tem; while(1){ ANX9030_Resetn_Pin=0; delay_ms(2); ANX9030_Resetn_Pin=l; delay_ms(2); c=ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDL_REG,&c1); if((c==0)&&(c1==0x30)){ c=ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDH—REG,&c1); if((c==o)&&(c1==Ox90)) break; }} ANX9030在上電復(fù)位后,設(shè)置DE_GEN和BT_656同步信號(hào)檢測(cè)。然后進(jìn)行像素格式和時(shí)鐘路徑的設(shè)置來配置視頻信息。由于HDMI兼容DVI.所以發(fā)送端可工作在HDMI模式或DVI模式,在此只需對(duì)ANX9030的HDMI—MODE位設(shè)置為I(HDMI)或o(ovt)f10可。檢測(cè)到HDMI模式后.設(shè)置HDMI的音頻格式及數(shù)據(jù)包,沒有異常中斷時(shí),使能數(shù)據(jù)包發(fā)送即可把音視頻數(shù)據(jù)包等信息發(fā)送出去.發(fā)送成功后返回。 除了像素時(shí)鐘檢測(cè)(CKDT)和熱插拔檢測(cè)(HPDT)功能外。ANX9030的大部分功能都處于待機(jī)狀態(tài),軟件需要正確的配置其他寄存器。這些寄存器的詳細(xì)配置可參考ANX9030的芯片資料。 ANX9030的異常處理。由于ANX9030提供了16個(gè)中斷觸發(fā)源.包括軟件觸發(fā)中斷、檢測(cè)到顯示器中斷、接收端上電/斷電檢測(cè)中斷、S/PDIF輸入丟包中斷及CTS變化中斷等,所以源端主控制器需要一個(gè)中斷來管理ANX9030所發(fā)出的中斷。一般只需要熱拔插檢測(cè)、RI_128連接完整性檢測(cè)及音頻FIFO溢出、CTS變化等斷即可。本設(shè)計(jì)利用EP9302的中斷引腳INT0來捕獲ANX9030引發(fā)的中斷,然后進(jìn)行相應(yīng)的中斷處理。 4 結(jié)束語 HDMI是針對(duì)下一代多媒體影音設(shè)備所開發(fā)的傳輸接口,適用于數(shù)字電視、DVD播放機(jī)、DVD錄放機(jī)、PVR、機(jī)頂盒及其他數(shù)字視聽產(chǎn)品.現(xiàn)在已廣泛應(yīng)用于PC機(jī)及平板顯示器等消費(fèi)類電子產(chǎn)品上。本文詳細(xì)說明了HDMI接口原理、源接口芯片特點(diǎn)、接口電路設(shè)計(jì)及在ARM9嵌入式平臺(tái)上系統(tǒng)軟件的實(shí)現(xiàn)方法,該系統(tǒng)可用于安防監(jiān)控和高清晰視頻會(huì)議等領(lǐng)域。 本文作者創(chuàng)新觀念:把高清多媒體接口HDMI應(yīng)用到視頻監(jiān)控系統(tǒng)中,和一般監(jiān)控系統(tǒng)相比,具有監(jiān)控場(chǎng)景更加清晰和使用靈活等優(yōu)點(diǎn)。 作者:廖夢(mèng)云 來源:《微計(jì)算機(jī)信息》(嵌入式與SOC)2009年第25卷第8-2期 |