采用線陣CCD的便攜式光譜采集系統設計
2.2 光譜數據處理電路及液晶顯示動態曲線研究
本文采用的微處理器是STC公司的STC89C52RC,其帶有額外的P4口,使得IO口資源更加豐富,由于這款單片機的內核是基于C51的,因此其機器周期還是傳統的12T模式,但是STC可以通過下載程序的模式設置來使用6T模式工作,即超頻工作。本系統微處理器的時鐘為24 MHz,使用6T模式工作:6個時鐘周期為一個機器周期,指令周期為0.25 ns。由于其內部存儲資源的限制:內存為512個字節,ROM空間為8 K。如果直接對ADS830轉換后的數字信號進行處理,會導致數據的丟失,并且轉換后的光譜數據的速率達到了1 MHz(周期1 ns)。基于以上兩點,需要使用緩沖裝置來暫存數據,以便單片機有效的對光譜數據進行處理。
文中采用了具有先進先出特性的異步FIFO芯片IDT7205,其內部有8 K字節的存儲空間,可以有效地對光譜數據進行緩沖。RS為其復位脈沖,低電平有效,一個有效的復位需要W和R處于高電平才能完成,只有在RS有效低電平過后,W和R才能進行操作。復位后的IDT7205讀寫指針
地址相等且位于0位置。EF和FF為指示標志位,其中EF為內部空標志位,其有效的低電平說明此時IDT7205里數據已經讀取完,等待寫入數據,而FF則表示內部數據空間已經寫滿,需要盡快讀出里面的數據。IDT7205復位后,這兩者都處于低電平,因此在編程的時需要進行區分。
圖5為IDT7205的硬件連接圖,其中D1~D8為ADS830轉換后的數字光譜信號,Q1~Q3則與STC89C52RS連接,這樣單片機就有比較充足的時間和空間來處理光譜信號,并對處理后的信號進行顯示。
文中設計的光譜采集系統可以使用電腦端和LCD端兩種方式來實現光譜數據的顯示,描繪其吸光度曲線,并得出吸收峰峰值和對應于該峰峰值的波長。電腦端的顯示比較簡單,通過PC機較強的數據處理能力能較好較快地顯示吸光度曲線,而對于LCD19264來說,則有比較多的細節需要處理。文中采用的是帶背光的LCD19264液晶來進行吸光度曲線的顯示,該液晶只有192*64的分辨率,因此要進行吸光度曲線的顯示,需要對光譜數據進行壓縮。CCD的有效像元有2 160個,要在19264上進行顯示,有兩種方法:使用翻屏來實現或者使用數據壓縮的方式實現。通過觀察CCD采集的光譜信號發現,吸收峰峰值只在一個或幾個特定的波長出現,而其他波長處的吸光度值則基本一致。因此,文中使用壓縮的方法來實現吸光度曲線在液晶上的顯示。通過設定采樣閥值,把2 160個數據壓縮為192個字節的光譜數據,采集的機理是:對低于該閥值的光譜數據則丟棄不用,而對高于其閥值的光譜數據進行存儲,并比較前后兩個光譜數據的大小,若相等,則只采用其中的一個數據。如果檢測到峰峰值比較大的光譜數據,則把此時采集的序號和峰值的幅度進行存儲,方便在液晶上顯示峰值吸光度。
利用LCD19264來繪制動態曲線,需要特殊的編程方式來實現。LCD19264是以字節方式寫入的,也就是一次寫入需要準備8bit的數據位。動態曲線的顯示則是以點(相當于1位)的方式進行繪制的,因此繪制動態曲線時需要把字節與點進行轉換。19264其行是以頁來進行操作的,而列則是按單列來操作,64列為一屏,總共3屏,在LCD19264上畫點,橫坐標則是液晶的列,而縱坐標則通過頁來實現,即橫坐標有192個點,縱坐標有64個點(8頁),列與橫坐標一致,因此不需要轉換,而縱坐標由于和液晶的8頁對應,因此需要進行轉換。按照液晶的結構(圖6)從上到下依次為0頁,1頁,3頁,……,7頁。例如:要找到50對應于哪一頁,首先需要算出50對應于8頁中的哪一頁,50/8=6,因此50對應于第6頁。具體在哪一位可以通過對50取8的余數,50%8=2,那么我們就可以確定50對應于LCD19264的第6頁上的第2位,通過在該位寫入高電平,則可以把50繪制在液晶上。
3 光譜采集系統測試結果及分析
通過對方案進行驗證以及對設計的系統電路圖進行多次調試和修改,得到了便攜式分光光度計硬件結構圖(圖7)。使用了接插件把LCD19264和TCD1208AP連接于系統接口上,方便擴展性能更好的器件,JTAG口和RS232口主要用來實現CPLD程序、單片機程序的下載,同時RS232口還兼有上傳采集數據到PC端的功能。

評論