新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于CPLD的多路信號(hào)采集系統(tǒng)實(shí)現(xiàn)方案

基于CPLD的多路信號(hào)采集系統(tǒng)實(shí)現(xiàn)方案

作者: 時(shí)間:2009-08-24 來(lái)源:網(wǎng)絡(luò) 收藏

3 實(shí)現(xiàn)計(jì)算機(jī)異步串行通訊設(shè)計(jì)
3.1異步串行通信的幀格式
在異步串行通信中,數(shù)據(jù)位是以字符為傳送單位,數(shù)據(jù)位的前、后要有起始位、停止位,另外可以在停止位的前面加上一個(gè)比特位(bit)的校驗(yàn)位。其幀格式仍然采用1位開(kāi)始位+8位數(shù)據(jù)位+1位停止位.如圖2所示。此次設(shè)計(jì)中沒(méi)有奇偶效驗(yàn)位。停止位,為邏輯1,總在每一幀的末尾。此次設(shè)計(jì)中停止位為1位。

3.2異步串行通信的波特率
串行口每秒發(fā)送或接收數(shù)據(jù)的位數(shù)為波特率。若發(fā)送或接收一位數(shù)據(jù)需要時(shí)間為t,則波特率為1/ t,相應(yīng)的發(fā)送或接收時(shí)鐘為1/t Hz。發(fā)送和接收設(shè)備的波特率應(yīng)該設(shè)置成一致,如果兩者的波特率不一致,將會(huì)出現(xiàn)校驗(yàn)錯(cuò)或者幀錯(cuò)。要產(chǎn)生9600b/s波特率,要有一個(gè)不低于9600 Hz的時(shí)鐘才可以。為產(chǎn)生高精度的時(shí)鐘,我們專門選取48M的晶振,通過(guò)5000分頻,最終頻率為48M/5000=9600BIT/S
3.3發(fā)送程序設(shè)計(jì)
根據(jù)采用的幀格式,需要發(fā)送的數(shù)據(jù)為10位(1位開(kāi)始位、8位數(shù)據(jù)位、1位停止位),在發(fā)送完這10位后,就應(yīng)該停止發(fā)送,并使發(fā)送端電平處于邏輯1,然后等候下次的發(fā)送。發(fā)送電路一共有3個(gè)并行進(jìn)程如圖3所示,進(jìn)程1產(chǎn)生9600bps波特率,使系統(tǒng)能夠以9600的波特率發(fā)送幀。進(jìn)程2中,當(dāng)允許寫信號(hào)WR下降延時(shí),發(fā)送完成標(biāo)志位tdEmpty變?yōu)榈碗娖?,開(kāi)始接受并行數(shù)據(jù),并將數(shù)據(jù)放入鎖存器鎖存。當(dāng)寫允許WR標(biāo)上升延時(shí),發(fā)送完成標(biāo)志位變?yōu)楦摺_M(jìn)程3,將放入鎖存器中的并行數(shù)據(jù)并串轉(zhuǎn)換,并依照幀格式,將10位數(shù)據(jù),在TXD引腳上以9600波特率,串行輸出經(jīng)過(guò)串口芯片MAX232電平轉(zhuǎn)換后實(shí)現(xiàn)與計(jì)算機(jī)正常通訊。
3.4接收程序設(shè)計(jì)
接收電路比發(fā)送電路要復(fù)雜,接收電路要實(shí)時(shí)檢測(cè)起始位的到來(lái),一旦檢測(cè)到起始位到,就要將這一幀數(shù)據(jù)接收下來(lái)。接受電路一共設(shè)計(jì)有三個(gè)并行進(jìn)程如圖4所示,其中 進(jìn)程1 負(fù)責(zé)產(chǎn)生9600bps波特率,使系統(tǒng)能夠在9600的波特率與外界系統(tǒng)通訊。進(jìn)程2 產(chǎn)生接收信號(hào)RXD的完成標(biāo)志位,每次在接收到幀的起始位時(shí),標(biāo)志位RXDF變高,在完成接受數(shù)據(jù)后,標(biāo)志位RXDF變低。進(jìn)程3負(fù)責(zé)將RXD信號(hào)輸入的10位串行數(shù)據(jù),依照10位的幀格式,先去掉串口的接收起始位和接收結(jié)束位,取其中的8位有效數(shù)據(jù),并將8位有效數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換,變成并行數(shù)據(jù)后,由8位數(shù)據(jù)總線DATA0~DATA7并行輸出。

4采集存儲(chǔ)控制程序設(shè)計(jì)
4.1采樣主控程序設(shè)計(jì):
此次系統(tǒng)我們使用48M晶振,每路信號(hào)采樣率不低于12.5khz,一共相當(dāng)于16路模擬量,所以控制點(diǎn)為48M ÷ (16 12.5khz)=240點(diǎn),所以主控計(jì)數(shù)器中有240個(gè)計(jì)數(shù)點(diǎn)可以用于控制。在0~240個(gè)點(diǎn)中實(shí)現(xiàn)了通道選通、啟動(dòng)AD、幀計(jì)數(shù)、兩次SRAM地址遞推等工作。每次循環(huán)結(jié)束后,系統(tǒng)主控計(jì)數(shù)器清零,反復(fù)循環(huán)采集。具體細(xì)節(jié)如圖5所示。



評(píng)論


相關(guān)推薦

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

關(guān)閉