基于Linux的ISA總線DMA的實現(xiàn)
三維圖像數(shù)據(jù)利用設(shè)備控制箱通過RS2232 串口后, 再利用紅外編解碼技術(shù)把數(shù)據(jù)傳到旋轉(zhuǎn)的LED驅(qū)動板上, 其整個數(shù)據(jù)傳輸?shù)耐ㄓ嵔Y(jié)構(gòu)圖如圖2 所示。
在單片機(jī)串口模塊中選用電平轉(zhuǎn)換芯片MAX232 芯片實現(xiàn)TTL 電平與RS2232 電平的雙向轉(zhuǎn)換, 從而把三維圖像數(shù)據(jù)傳送到單片機(jī)的串行接收端口RXD 上, 然后單片機(jī)再通過其發(fā)送端口TXD把數(shù)據(jù)送出。圖中的調(diào)制與紅外發(fā)射模塊通過由N E555 芯片構(gòu)成的多諧振蕩電路調(diào)制成38 kHz 的載波信號, 最后利用紅外發(fā)射管TSAL6238 以光脈沖的形式向外發(fā)送。為了保證紅外接收數(shù)據(jù)的準(zhǔn)確性,N E555 產(chǎn)生的振蕩頻率要盡可能接近38 kHz,所以在選擇電阻電容時要選用精密的元件并保證電源電壓的穩(wěn)定性。
數(shù)據(jù)傳輸電路中的紅外接收解調(diào)模塊選擇Vishay 公司的TSOP1738, 其內(nèi)部電路功能已包括把接收到的載波頻率為38 kHz 的脈沖調(diào)制紅外光信號轉(zhuǎn)化為電信號, 并由前放大器和自動增益控制電路進(jìn)行放大處理。然后, 通過帶通濾波器進(jìn)行濾波, 濾波后的信號由解調(diào)電路進(jìn)行解調(diào)。最后, 由輸出級電路進(jìn)行反向放大輸出。
所以, 選用此紅外接收模塊只要把其數(shù)據(jù)輸出直接送到FPGA 處理即可。經(jīng)實驗測定, 利用此紅外傳輸電路傳輸數(shù)據(jù), 速率最高可達(dá)1 kB/ s。
1.4 角度編碼器與電機(jī)模塊電路
本系統(tǒng)立體顯示是通過快速顯示旋轉(zhuǎn)空間中的一系列二維截面來實現(xiàn)的, 把LED 屏旋轉(zhuǎn)一周分成180 個截面, 即每轉(zhuǎn)2°要刷新一次顯示屏。為了準(zhǔn)確刷新顯示屏, 本系統(tǒng)選用角度編碼器來識別顯示屏轉(zhuǎn)過的角度, 角度編碼器通過測試電機(jī)旋轉(zhuǎn)發(fā)出脈沖可識別電機(jī)的旋轉(zhuǎn)角度。本系統(tǒng)選用的角度編碼器型號為ZSP38062022G2360B25224E。此編碼器旋轉(zhuǎn)一周可輸出360 個脈沖信號。這樣電機(jī)每轉(zhuǎn)2°, 角度編碼器便可發(fā)出2 個脈沖信號,LED 顯示屏控制系統(tǒng)通過計數(shù)采集的角度編碼器輸出脈沖數(shù)來控制刷新LED 屏。
同時, 利用角度編碼器的輸出脈沖再通過單片機(jī)的處理可測出電機(jī)的旋轉(zhuǎn)速度, 并可送到數(shù)碼管顯示。此外, 單片機(jī)可對測得的電機(jī)速度進(jìn)行判斷,判斷其是否超出一定的范圍, 如超出范圍可通知由單片機(jī)控制的報警電路報警。其電機(jī)模塊電路圖如圖3 所示。
電路中所用的電機(jī)為無源電機(jī), 所以需要電機(jī)的驅(qū)動電路, 考慮電機(jī)在加負(fù)載時速度會減慢, 設(shè)計電機(jī)的速度可調(diào), 其調(diào)節(jié)范圍為0~ 4 200 r/m in。電路中電機(jī)與角度編碼器套在一起, 其轉(zhuǎn)速v ( r/s ) 與角度編碼器的輸出脈沖頻率f (Hz) 具有如下關(guān)系:
v = f/360 (2)
通過此對應(yīng)關(guān)系利用單片機(jī)可測出電機(jī)的旋轉(zhuǎn)速度并可送到數(shù)碼管顯示。同時利用設(shè)計的報警器可達(dá)到對電機(jī)旋轉(zhuǎn)速度的監(jiān)控。
1.5 LED 尋址驅(qū)動電路
LED 尋址驅(qū)動控制電路主要是利用FPGA 芯片EP1C3 來控制LED的專門驅(qū)動芯片BHL2000, 并且EP1C3 根據(jù)采集的角度編碼器的輸出脈沖數(shù)按時讀取存儲器中的三維圖像數(shù)據(jù), 然后傳送給BHL 2000, 從而來驅(qū)動LED 屏的列顯示。同時, FP2GA 又將行掃描信號輸出經(jīng)后級放大來驅(qū)動L ED 屏的行顯示, 其具體的原理框圖如圖4 所示。
由于LED屏在旋轉(zhuǎn)的過程中會造成亮度損失,所以FPGA 的行掃描信號輸出需經(jīng)過74HC245 和UDN2981 的放大, 這樣行信號輸出最大電流可達(dá)到500 mA。此外,BHL 2000 屬于灌電流型器件且每個數(shù)據(jù)輸出端電流可達(dá)到80 mA , 可直接驅(qū)動L ED 顯示。驅(qū)動電路中的存儲器選擇STC62WV 5128, 其容量為512 k×8 b it, 而本系統(tǒng)一幅三維圖像的數(shù)據(jù)量為6715 k×8 b it, 所以選擇STC62WV 5128 是足夠的。
值得說明的是, EP1C3 對BHL 2000 的寫數(shù)據(jù)是在BHL 2000 寫入時鐘WR 的驅(qū)動下, 數(shù)據(jù)從D in02D in7 輸入, 在內(nèi)部移位寄存器中串行移位16 次后,由級聯(lián)口SHO02SHO7移出。同時BHL 2000 行、場控制信號HS、VS確定數(shù)據(jù)在存儲器中的存儲位置, 最多可存8×16×32 個字節(jié)。此外,BHL 2000 的輸出行、場控制信號HCL K 和CLR 確定取數(shù)位置, 在讀出時鐘CLK控制下進(jìn)行灰度調(diào)制, 輸出脈寬信號O02O15, 從而驅(qū)動LED顯示屏。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論