VHDL實(shí)現(xiàn)PCM碼解調(diào)程序模塊設(shè)計(jì)
出處:赤鑄 發(fā)布于:2009-10-23 15:25:14
1 引言
脈沖編碼調(diào)制(Pulse Code Modulation,簡稱PCM)是一種概念簡單、理論完善的編碼系統(tǒng),其特征是把連續(xù)的輸入信號變換成在時(shí)間和振幅上都是離散量,然后再變換為代碼傳輸。信息為數(shù)字信號,在遠(yuǎn)距離再生中繼傳輸中不積累噪聲,從而提高了通信系統(tǒng)的有效性、可靠性和保密性。利用現(xiàn)場可編程門陣列(FPGA)和VHDL 語言實(shí)現(xiàn)了PCM碼的解調(diào),這樣在不改變硬件電路的情況下,能夠適應(yīng)PCM碼傳輸速率和幀結(jié)構(gòu)變化,從而正確解調(diào)數(shù)據(jù)。
2 硬件電路設(shè)計(jì)
圖1給出基于FPGA的硬件電路。其中,圖1(a)為FPGA配置模塊;圖1(b)為信號收發(fā)模塊及PCM碼接收模塊。

該系統(tǒng)設(shè)計(jì)中FPGA選取Xilinx公司的Spartan系列XC2S50器件。該器件有4種工作模式,分別為主串模式、從串模式、邊界掃描和從并模式。將M0,M1,M2接地,使其工作在主串模式下。FPGA由存儲在片內(nèi)RAM中的程序設(shè)置其工作狀態(tài),工作時(shí)需要編程設(shè)置片內(nèi)的RAM。用戶可根據(jù)不同的配置模式,采用相應(yīng)的編程方式。上電時(shí),F(xiàn)PGA將EPROM中的數(shù)據(jù)寫入片內(nèi)編程RAM,配置完成后,F(xiàn)PGA進(jìn)人工作狀態(tài)。掉電后,F(xiàn)PGA內(nèi)部邏輯消失,恢復(fù)成白片。因此,F(xiàn)PGA能夠反復(fù)使用且無需專用的編程器,采用通用EPROM,PROM編程器即可實(shí)現(xiàn)。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM。同一FPGA根據(jù)不同的編程數(shù)據(jù)能夠產(chǎn)生不同的電路功能。該系統(tǒng)在發(fā)送方接收到請求信號后則開始發(fā)送數(shù)據(jù)。PCM碼解調(diào)模塊在移位脈沖同步下接收數(shù)據(jù),并將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)存人FIFO中。每接收到請求脈沖發(fā)送一幀數(shù)據(jù),每幀數(shù)據(jù)以146FH為結(jié)束標(biāo)志字,EB90為子幀同步字,當(dāng)PCM碼解調(diào)模塊檢測到幀尾后停止解調(diào),并停止向FIFO寫人數(shù)據(jù)。PCM碼解調(diào)模塊由硬件描述語言編寫并集成于FPGA中。
3 PCM碼解調(diào)程序模塊
圖2給出PCM碼幀格式。其中N為子幀中的字?jǐn)?shù),值為1 024;Z為一幀所含子幀個數(shù),值為256。子幀同步字字長為16~32 bit,字長度為4~16 bit。在遙測系統(tǒng)中,依照PCM碼幀格式,將所要測控的參數(shù)放在格柵中自定義位,同時(shí)定義子幀同步字和字長。當(dāng)發(fā)送請求信號,同步接收一幀數(shù)據(jù),即使一幀數(shù)據(jù)接收錯誤,也不影響下一幀數(shù)據(jù)解調(diào)的正確性,進(jìn)一步減小誤碼率。檢測子幀同步字時(shí),先找到一個子幀同步字后,每隔N個字節(jié)判斷移位數(shù)據(jù)是否為子幀同步字,對每一個子幀都進(jìn)行判斷,即使次誤判,或當(dāng)PCM發(fā)送中斷后再重發(fā),也不會影響后續(xù)正確解調(diào)數(shù)據(jù)。可根據(jù)子幀同步字、幀尾標(biāo)志字和請求信號的順序由該解調(diào)數(shù)據(jù)模塊進(jìn)行自我糾正,從而大大降低了誤碼率。圖3為PCM碼解調(diào)程序模塊圖。

3.1 移位脈沖產(chǎn)生程序

系統(tǒng)設(shè)計(jì)要求移位脈沖頻率為80 kHz,對時(shí)鐘脈沖進(jìn)行40分頻。移位脈沖產(chǎn)生程序仿真圖如圖4所示。其中,bitt為位同步移位脈沖。

3.2 字節(jié)同步信號產(chǎn)生程序

設(shè)b為一個標(biāo)志位,當(dāng)b為‘1’時(shí),表示檢測到請求信號的上升沿且尚未結(jié)束一幀傳輸,該進(jìn)程的byte為字節(jié)同步信號,用來標(biāo)志一個字節(jié)接收完畢。字節(jié)同步信號產(chǎn)生程序仿真圖如圖5所示。

3.3 并行數(shù)據(jù)輸出及幀尾檢測程序

并行數(shù)據(jù)在字節(jié)同步信號byte的上升沿輸出,outdata為并行數(shù)據(jù)輸出端,同時(shí)將并行數(shù)據(jù)賦值給幀尾標(biāo)志tail的低8位,將tail的低8位給其高8位,當(dāng)tail的值為146F時(shí),即表示一幀結(jié)束。并行數(shù)據(jù)輸出及幀尾檢測程序仿真圖見圖6。

4 調(diào)試結(jié)果
所發(fā)送數(shù)據(jù)是以00H為起始遞增的一串?dāng)?shù)據(jù),該數(shù)據(jù)字長200,結(jié)尾以146F為標(biāo)記。調(diào)試過程中,南示波器觀察波形,可以看到請求信號的頻率及脈寬、移位脈沖的頻率均符合要求,解調(diào)出的并行數(shù)據(jù)與數(shù)據(jù)源的數(shù)據(jù)相吻合。圖7和圖8分別給出移位脈沖電壓up波形和輸出位電壓ud波形。

5 結(jié)語
基于FPGA的PCM碼解調(diào)電路VHDL程序模塊設(shè)計(jì),可使電路在發(fā)出請求脈沖后,在移位脈沖的作用下,同步接收PCM數(shù)據(jù),并輸出8位并行數(shù)據(jù),在幀尾處結(jié)束解調(diào)。通過仿真及終電路調(diào)試驗(yàn)證了該系統(tǒng)設(shè)計(jì)能夠?qū)崿F(xiàn)PCM碼解調(diào)系統(tǒng)功能。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- EDA技術(shù)工具鏈與全流程設(shè)計(jì)運(yùn)維指南2026/1/5 10:28:51
- PLC程序現(xiàn)場疑難問題排查與深度優(yōu)化指南2025/12/24 14:36:36
- PLC程序現(xiàn)場調(diào)試與優(yōu)化實(shí)操指南2025/12/24 14:29:57
- 工業(yè)PLC模擬量信號采集:調(diào)理技術(shù)與抗干擾工程方案2025/12/15 14:39:08
- PLC設(shè)備如何選型2025/9/5 17:15:14









