新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 嵌入式數字存儲示波器

        嵌入式數字存儲示波器

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

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 博野县| 安丘市| 绥滨县| 磐石市| 临夏县| 伊宁县| 九江市| 会昌县| 武义县| 阜平县| 澄迈县| 咸宁市| 怀安县| 资兴市| 长子县| 京山县| 福海县| 瑞安市| 永登县| 双辽市| 兴山县| 田阳县| 土默特左旗| 台中市| 合肥市| 贵定县| 阿克陶县| 安顺市| 略阳县| 孟连| 治多县| 深州市| 苏尼特右旗| 射洪县| 卢氏县| 涟水县| 屯留县| 黄石市| 苍山县| 莎车县| 丽江市|