新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 嵌入式數(shù)字存儲示波器

嵌入式數(shù)字存儲示波器

作者: 時間:2011-11-30 來源:網(wǎng)絡(luò) 收藏
介紹基于uCLinux操作系統(tǒng),使用SamsungS3C 44BOXCPU,設(shè)計并實現(xiàn)的一種。在uCLinux平臺上實現(xiàn)多任務(wù)程序運行,用 中斷方式實現(xiàn)觸摸屏控制。系統(tǒng)具有采集、、顯示和分析的功能。
  關(guān)鍵詞:系統(tǒng);uCLinux;;FIFO;多任 務(wù)
Changsha 410083, China)
  Samsung S3C44BOX是三星公司專為手持設(shè)備和一般應(yīng)用提供的高性價比和高性能的微處理器 ,它使用ARM7TDMI核,工作在66MHz。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還 集成了下列部件:8KB Cache、外部存儲器控制器、LCD控制器、4個DMA通道、2通道UART、1 個多主IIC總線控制器、1個IIS(Inter?IC Sound)總線控制器,5通道PWM定時器及1個內(nèi)部 定時器、71個通用I/O口、8個外部中斷源、實時時鐘、8通道12位ADC等。
1.2A/D轉(zhuǎn)換采集系統(tǒng)
  由于存儲工作在40MHz,而S3C44BOX處理器內(nèi)帶ADC的工作頻率最高只能達到50kH z,所以必須單獨設(shè)計一個A/D轉(zhuǎn)換采集系統(tǒng),其組成如圖2所示。

  根據(jù)數(shù)字存儲示波器的隨機采樣原理得知:示波器每次觸發(fā)以后,A/D轉(zhuǎn)換器完成一組采樣 序列,并將其存入高速RAM中;稍后,由微處理器進行處理,顯示在液晶屏幕上,這就是一 次數(shù)據(jù)獲得過程。系統(tǒng)接口具體方案如圖3所示。使用微處理器S3C44BOX的I/O端口來讀取數(shù) 據(jù)并發(fā)出控制信號。其中“FIFO RAM”為先進先出存儲器,采用IDT公司的IDT72V02型號, 最高轉(zhuǎn)換速率為15ns,1024×9bit存儲空間。
  系統(tǒng)利用S3C44BOX微處理器I/O端口中的F端口實現(xiàn)數(shù)據(jù)的輸入輸出,利用D端口和G端口來進 行控制。采集的信號經(jīng)過A/D變換后首先進入FIFO存儲器,當(dāng)從FIFO中每讀出一個數(shù)據(jù)后需 要再向其發(fā)送一個讀數(shù)脈沖信號,這樣才能保證讀出下一個單元內(nèi)存儲的數(shù)據(jù),讀數(shù)脈沖由 G端口的第四位PG4給出。數(shù)據(jù)從FIFO存儲器中被讀出后經(jīng)過數(shù)字鎖存器進入端口F的數(shù)據(jù)寄 存器PFDATA中,數(shù)字鎖存信號由D端口的第四位PD4給出。當(dāng)處理器讀周期到來時,數(shù)據(jù)由端 口被讀入內(nèi)存。每當(dāng)數(shù)據(jù)采滿1K時,F(xiàn)IFO存儲器會產(chǎn)生一個中斷信號,該中斷信號由D端口 的PD6輸入給微處理器。
2.1數(shù)據(jù)采集和存儲模塊
  數(shù)據(jù)采集存儲模塊的流程如圖4所示。
2.2波形顯示和刷新模塊
  系統(tǒng)使用一塊大小為240×320像素的256彩色液晶顯示屏,其平面尺寸為93mm×75mm(長 ×寬)。微處理器S3C44BOX為LCD的控制提供了良好的支持,其實現(xiàn)主要通過微處理器中的LC D控制器來完成。波形的顯示主要通過將數(shù)字量轉(zhuǎn)換成液晶顯示屏上點的坐標(biāo)來實現(xiàn),存放 在內(nèi)存中的數(shù)據(jù)經(jīng)過坐標(biāo)變換就可以在LCD上進行顯示。因為LCD的坐標(biāo)系與顯示波形 時所用的坐標(biāo)系y軸方向相反,且需要將波形顯示在屏幕的特定區(qū)域內(nèi),所以在顯示之前要 對數(shù)據(jù)進行歸一化處理。從端口讀入數(shù)據(jù)的范圍為0~0xff,0點對應(yīng)于LCD上y軸坐標(biāo)的190 ,0xff對應(yīng)于LCD上y軸坐標(biāo)的50,則0x7f對應(yīng)于LCD上坐標(biāo)為120的點,即屏幕顯示的零點, 相應(yīng)的轉(zhuǎn)化公式為:Y=120-(data-0x7f)×0x7f,其中:data為從端口讀 入的數(shù)據(jù);Y是data在LCD上顯示的y坐標(biāo)。LCD一屏可以顯示300個數(shù)據(jù)點 ,點與點之間用矢量法直線相連。
2.3觸摸屏控制模塊
  觸摸屏是附著在LCD表面的一層透明薄膜,它將壓力轉(zhuǎn)換成模擬電信號,再經(jīng)過模 數(shù)轉(zhuǎn)換送給系統(tǒng)。本系統(tǒng)觸摸屏使用FM7843芯片控制。FM7843是4線電阻觸摸屏轉(zhuǎn)換接口芯 片。它是一款具有同步串行接口的12位取樣模數(shù)轉(zhuǎn)換器。在125kHz吞吐速率和2.7V電 壓下的功耗為750μW,而在關(guān)閉模式下的功耗僅為0.5μW。圖5為觸摸屏工作流程示 意圖。觸摸屏通過中斷方式完成其功能,從執(zhí)行流程上來說,首先在Touch Panel?init() 中完成兩件事:注冊驅(qū)動程序和注冊中斷。對于觸摸屏設(shè)備,主設(shè)備號為58,設(shè)備名為“FM 7843”,驅(qū)動程序子函數(shù)集為Touch Panel?fops。Touch Panel?fops中指定了read,sele ct,open,telease四個操作子函數(shù)的地址,依次為:Read Touch Panel,Touch Panel Sel ect,Open Touch Panel和Close Touch?Panel。當(dāng)用戶進程調(diào)用open()打開/dev/FM7843時 ,內(nèi)核調(diào)用Open Touch Panel();用戶進程調(diào)用read()讀該設(shè)備時,內(nèi)核調(diào)用Read Touch P anel()。request?irq()注冊中斷處理,中斷為TOUCHPANEL?IRQ?NUM,中斷處理程序為To uch Panel Interrupt(),說明為“Touch?Panel”。當(dāng)觸摸屏被觸摸有數(shù)據(jù)來到時,中斷 被觸發(fā),調(diào)用中斷處理程序,準(zhǔn)備處理數(shù)據(jù)。
  該系統(tǒng)中觸摸屏主要用于獲取用戶的控制信息, 在LCD的上方顯示有若干個觸摸屏按鈕,例 如其中有幅值增加、幅值減小、頻率增加和頻率減小等。幅值和頻率的選定值存放在指定內(nèi) 存單元中,當(dāng)檢測到觸摸點的坐標(biāo)在相應(yīng)區(qū)域中后,系統(tǒng)就會根據(jù)程序預(yù)先設(shè)定來設(shè)定采樣 頻率和幅值,這些在前、后臺任務(wù)之間進行同步和通信。任務(wù)之間的通信是通過共享指定的 物理內(nèi)存單元來實現(xiàn)的,不同任務(wù)之間對共享內(nèi)存單元的訪問是互斥的。uCLinux的設(shè)計針 對沒有MMU(內(nèi)存管理單元模塊)的處理器,不能使用虛擬內(nèi)存管理技術(shù)。uCLinux系統(tǒng)對于內(nèi) 存的訪問是直接的,所有程序中訪問的地址都是實際的物理地址,操作系統(tǒng)對內(nèi)存空間沒有 保護。當(dāng)觸摸屏檢測到有改變幅值或頻率的信號發(fā)生時,就去修改指定單元中存儲的數(shù)據(jù), 這樣的內(nèi)存單元對于兩個任務(wù)來說屬于臨界資源,在觸摸屏修改內(nèi)存期間需要禁止其他程序 對該內(nèi)存進行任何操作。同樣,采集程序每次在發(fā)送幅值和頻率信號之前要對該內(nèi)存單元進 行讀操作,若在此時有觸摸屏信號對內(nèi)存提出寫操作要求,程序就應(yīng)該進行等待,直到采集 部分的讀操作執(zhí)行完畢,釋放內(nèi)存的訪問權(quán)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 嵌入式 數(shù)字 存儲 示波器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉