MSP430單片機(jī)在微型低功耗數(shù)據(jù)廣播接收機(jī)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、 引言
我們獨(dú)立自主開發(fā)了數(shù)據(jù)廣播編碼器和微型低功耗調(diào)頻數(shù)據(jù)廣播接收機(jī),整套系統(tǒng)采用連續(xù)相位頻移鍵控(CPFSK)調(diào)制方式,副載波頻率為72KHz,占用帶寬約16Khz,數(shù)據(jù)傳輸速率4.8KHZ。采用CPFSK調(diào)制方式使接收機(jī)易于實(shí)現(xiàn),與QPSK的調(diào)制方式相比對相位穩(wěn)定度要求不高,不易受外界溫度噪聲的影響,而且在信號解調(diào)處理時(shí)實(shí)現(xiàn)低功耗。
由于在發(fā)送端先后進(jìn)行了數(shù)據(jù)編碼、信道調(diào)制、線性調(diào)頻,所以接收設(shè)備要完成信號逆處理。硬件結(jié)構(gòu)框圖:
二、MSP430單片機(jī)的特點(diǎn)及在接收機(jī)中的應(yīng)用
TI公司MSP430系列單片機(jī)的超低功耗特性(運(yùn)行在1MHz時(shí)鐘條件下工作電流視工作模式不同為0.1-400uA)、強(qiáng)大的外圍模塊功能、體積小等優(yōu)點(diǎn)適合作為接收機(jī)的CPU。MSP430系列中的各成員集成了較多的片上外圍資源,包含:12位A/D,精密模擬比較器,硬件乘法器,2組頻率可達(dá)8MHZ的時(shí)鐘模塊,2個(gè)帶有大量捕獲/比較寄存器的16位定時(shí)器,看門狗,2個(gè)可實(shí)現(xiàn)異步、同步及多址訪問的串行通信接口,數(shù)十個(gè)可實(shí)現(xiàn)方向設(shè)置及中斷功能的并行輸入、輸出端口等。
MSP430F123單片機(jī)作為CPFSK數(shù)據(jù)廣播接收機(jī)的CPU主要對基帶數(shù)據(jù)進(jìn)行處理,完成數(shù)據(jù)鏈路層的工作:
數(shù)據(jù)解碼
位同步 |
幀同步 |
序列去擾 |
去交織 |
R-S糾錯(cuò)解碼 |
CRC-16校驗(yàn) |
三、數(shù)字通信中的同步問題
數(shù)據(jù)通信中,同步是非常重要的問題,通信系統(tǒng)是否可靠、接收靈敏度是否達(dá)到標(biāo)準(zhǔn),很大程度上依賴于同步技術(shù)的優(yōu)劣。
1、同步不確定性的來源
實(shí)際通信系統(tǒng)中,收發(fā)站之間會(huì)由于電波傳播中的多徑效應(yīng)引起碼相位、載波中心頻率相位的延遲,而且在傳輸信道中隨機(jī)噪聲的疊加引起傳輸波形的失真,連接在接收濾波器之后的判決電路也很難保證"無差錯(cuò)"的恢復(fù)基帶信號。這些都會(huì)導(dǎo)致同步的不穩(wěn)定性。
2、實(shí)現(xiàn)同步的幾種方法
按同步功用分類可分為載波同步、位同步、群同步和網(wǎng)同步。
按傳輸同步信息的方式可分為外同步法和自同步法。外同步法:是由發(fā)送端發(fā)送專門的同步信息,接收端把這個(gè)專門的同步信息檢測出來作為同步信號。自同步法:發(fā)送端不發(fā)送專門的同步信息,而是由接收端設(shè)法從接收信號中提取同步信息。
本接收機(jī)的CPU要完成的功能中只涉及到位同步和幀(群)同步,由于不能從硬件解調(diào)FSK信號中恢復(fù)位同步時(shí)鐘,所以采用自同步的方法來實(shí)現(xiàn)位同步,以下結(jié)合MSP430單片機(jī)的特點(diǎn)分析位同步和幀同步的實(shí)現(xiàn)方法。
四、位同步
由于本接收機(jī)接收的碼元速率為4.8KHZ,用CPU捕捉位同步信息,然后進(jìn)行采樣,在配合RS糾錯(cuò),即可達(dá)到數(shù)據(jù)準(zhǔn)確傳輸?shù)囊蟆?br />(一)、位同步的方法:
方法一、
〈圖1〉
設(shè)置接收端恢復(fù)出的同步時(shí)鐘的頻率為5倍的碼元頻率,這樣就在一個(gè)碼元周期內(nèi),設(shè)置了5個(gè)采樣點(diǎn)。位同步可以分為兩個(gè)過程:捕獲、同步跟蹤。
1、 捕獲,即找到正確的同步時(shí)鐘起始點(diǎn)。在接收的數(shù)據(jù)中,只有0、1跳變沿才能為我們提供位同步信息,如果數(shù)據(jù)長時(shí)間為1或?yàn)?,這將給接收端恢復(fù)位定時(shí)信息造成一定困難。所以發(fā)送端對數(shù)字基帶信號進(jìn)行隨機(jī)化處理,一方面起到能量擴(kuò)散的作用,另一方面限制連0碼和連1碼的長度,易于位同步的捕獲和同步時(shí)鐘的恢復(fù)。
捕獲過程是通過測量數(shù)據(jù)流中兩個(gè)跳變沿中間的時(shí)間寬度(W),如果W等于碼元周期,便以第二個(gè)跳變沿為起始時(shí)刻,設(shè)置同步時(shí)鐘;如果W不等于碼元周期,則需要重新捕獲。
2、 同步跟蹤,在接收數(shù)據(jù)的過程中,還要保證同步時(shí)鐘的變化跟隨碼元相位或頻率的偏移。同樣,依據(jù)數(shù)據(jù)流中0、1跳變沿來實(shí)現(xiàn)同步時(shí)鐘的跟蹤。如圖1:如果同步時(shí)鐘與碼元之間沒有任何偏差時(shí),數(shù)據(jù)的跳變沿每次都應(yīng)出現(xiàn)在第5個(gè)計(jì)數(shù)時(shí)刻與下一個(gè)計(jì)數(shù)時(shí)刻之間,這時(shí)把第三個(gè)計(jì)數(shù)時(shí)刻作為數(shù)據(jù)采樣時(shí)刻;當(dāng)同步時(shí)鐘與碼元之間有偏差時(shí),數(shù)據(jù)跳變沿不能準(zhǔn)確的落在第5個(gè)與下一個(gè)計(jì)數(shù)時(shí)刻之間,如果數(shù)據(jù)跳變沿出現(xiàn)在第4 與第5個(gè)計(jì)數(shù)時(shí)刻之間,說明同步時(shí)鐘相對于碼元相位滯后,為保證每次采樣時(shí)刻在碼元的中心位置,就要把采樣點(diǎn)提前至第2個(gè)計(jì)數(shù)時(shí)刻;相反,如果數(shù)據(jù)跳變沿出現(xiàn)在第1與第2個(gè)計(jì)數(shù)時(shí)刻之間,說明同步時(shí)鐘相對于碼元相位超前,就要把采樣點(diǎn)錯(cuò)后至第4個(gè)計(jì)數(shù)時(shí)刻。這樣不斷調(diào)整采樣點(diǎn),使每次此采樣時(shí)刻均位于碼元中心位置,跟隨其變化。
方法二、
根據(jù)MSP430單片機(jī)硬件特點(diǎn),我們對上述同步方法進(jìn)行了優(yōu)化,并達(dá)到了良好的同步跟蹤效果。
設(shè)置接收端恢復(fù)出的同步時(shí)鐘的頻率等于碼元頻率。每一個(gè)計(jì)數(shù)中點(diǎn)均為采樣時(shí)刻。與5倍時(shí)鐘法相同,它也需要捕獲和同步跟蹤兩個(gè)步驟。捕獲的過程與上述的方法相同。同步跟蹤,可以使采樣時(shí)刻基本穩(wěn)定在碼元中心位置。如果同步時(shí)鐘不跟隨碼元相位的變化進(jìn)行調(diào)整,則采樣點(diǎn)必然相對于碼元滑動(dòng),當(dāng)向前或向后偏移半個(gè)碼元周期時(shí),采樣值就出現(xiàn)錯(cuò)誤。如圖2,恢復(fù)出的同步時(shí)鐘與碼元同步時(shí),數(shù)據(jù)跳變沿的發(fā)生時(shí)刻與前一采樣時(shí)刻的距離(D)等于二分之一碼元寬度(M)。在同步時(shí)鐘與碼元相對偏移時(shí),則有D≠M(fèi),若D>M,同步時(shí)鐘超前,就要將下一采樣時(shí)刻滯后;若D<M,同步時(shí)鐘超前,就要將下一采樣時(shí)刻提前。在接收過程中,同步跟蹤就是根據(jù)D與M的關(guān)系不斷調(diào)整。
(二)、方法二的具體實(shí)現(xiàn)
MSP430單片機(jī)的Timer_A可支持同時(shí)進(jìn)行的多種時(shí)序控制、多個(gè)捕獲/比較功能、各模塊獨(dú)立編程,中斷可以由計(jì)數(shù)器溢出引起,也可以來自捕獲外部信號的跳變沿。
MC1和MC0選擇計(jì)數(shù)器工作模式,MC1=0、MC0=1時(shí)定時(shí)器增計(jì)數(shù)至比較寄存器CCR0的值就會(huì)產(chǎn)生中斷,用這種模式可以產(chǎn)生固定頻率的中斷信號作為同步時(shí)鐘。當(dāng)增大或減小寄存器CCR0的值時(shí),即可改變定時(shí)的時(shí)間間隔,從而調(diào)整同步時(shí)鐘的頻率。由于定時(shí)計(jì)數(shù)器的調(diào)整精度為一個(gè)時(shí)鐘周期1/4.3ms(外部時(shí)鐘晶振4.3MHz),所以可以產(chǎn)生頻率精確的同步時(shí)鐘。
捕獲模式用于確定事件發(fā)生的時(shí)刻,可用于速度計(jì)算或時(shí)間測量等場合。如果在選定的輸入引腳(如圖P1.2)上發(fā)生選定的脈沖觸發(fā)沿(上升沿、下降沿、任意跳變),則定時(shí)器的計(jì)數(shù)值被復(fù)制到捕獲寄存器CCR1中,并產(chǎn)生中斷。因此,讀出CCR1中的值就可以記錄跳變沿發(fā)生的時(shí)刻,根據(jù)跳變沿發(fā)生時(shí)刻與前一采樣點(diǎn)比較的結(jié)果,調(diào)整同步時(shí)鐘,超前或滯后,重新預(yù)置CCR0。
<圖2>
定時(shí)器時(shí)鐘源使用ACLK,即外部晶振,f = 4.194MHz,所需同步時(shí)鐘的頻率f = 4.8KHz,
計(jì)數(shù)器計(jì)數(shù)值CCR0 = 4.194MHZ/4.8KHZ = 873
如圖可見,當(dāng)同步時(shí)鐘與碼元完全同步時(shí),捕獲中斷后所讀到值CCR1,應(yīng)等于CCR0的二分之一,即;當(dāng) 時(shí),說明同步時(shí)鐘超前,需要增大計(jì)數(shù)值CCR0,即 , 使下一bit的采樣點(diǎn)錯(cuò)后;當(dāng)時(shí),說明同步時(shí)鐘滯后,需要減小計(jì)數(shù)值CCR0,即,使下一bit的采樣點(diǎn)提前。
在上式中的 △ 稱為數(shù)據(jù)速率的誤差容限值(datarate tolerance),如果設(shè)置的這個(gè)容限值太高(即:時(shí)鐘調(diào)整的步進(jìn)值過大),就會(huì)導(dǎo)致同步時(shí)鐘的頻率不能穩(wěn)定;反之這個(gè)容限值太小(即:時(shí)鐘調(diào)整的步進(jìn)值過?。綍r(shí)鐘就不能跟蹤上碼元的變化;只有這個(gè)容限值合適,同步時(shí)鐘產(chǎn)生的采樣點(diǎn)就會(huì)逐漸收斂到接收碼元的中心位置,實(shí)現(xiàn)同步跟蹤。根據(jù)對噪聲和頻偏的估計(jì), ,根據(jù)這個(gè)標(biāo)準(zhǔn)計(jì)算 △ 的值。
在本接收機(jī)中的時(shí)鐘調(diào)整并不是捕獲到每一次跳變沿都要進(jìn)行時(shí)鐘調(diào)整,根據(jù)接收信號頻偏大小,每8 bit 調(diào)整一次時(shí)鐘,即可實(shí)現(xiàn)同步時(shí)鐘的跟蹤。下表給出實(shí)驗(yàn)中捕獲中斷讀出的CCR1的值。
時(shí)采樣點(diǎn)基本位于碼元中心
375 | 385 | 407 | 421 | 440 | 426 | 445 | 438 |
440 | 433 | 446 | 436 | 439 | 448 | 432 | 430 |
421 | 434 | 447 | 437 | 420 | 405 | 412 | 419 |
426 | 429 | 433 | 438 | 439 | 420 | 431 | 435 |
439 | 429 | 439 | 422 | 436 | 439 | 426 | 435 |
從表中看出同步時(shí)鐘的采樣點(diǎn)逐漸收斂在碼元中心位置,并且-在以后的接收過程中,實(shí)現(xiàn)跟蹤。
(三)、小結(jié)
由于采樣時(shí)鐘恢復(fù)和同步捕捉跟蹤都需要響應(yīng)中斷服務(wù)程序,占用CPU開銷。而CPU 的主要工作是進(jìn)行每幀數(shù)據(jù)的解碼和發(fā)送。如果使用第一種同步方法,時(shí)鐘頻率4.8K*5,CPU時(shí)鐘為4.3MHz,即程序每運(yùn)行41.6us、約20條程序語句就要響應(yīng)一次定時(shí)器中斷服務(wù)程序,增大了運(yùn)算量。如果提高CPU的工作頻率,會(huì)增大電流的消耗。所以在達(dá)到相同的采樣效果時(shí),使用第二種同步方法。同理,為節(jié)約CPU開銷,并不需要捕捉每個(gè)數(shù)據(jù)跳變沿進(jìn)行同步跟蹤,實(shí)驗(yàn)證明每8比特?cái)?shù)據(jù)捕捉一次跳變沿調(diào)整采樣時(shí)鐘,即可實(shí)現(xiàn)良好的同步跟蹤。
五、幀同步
在數(shù)字信息傳輸中,幀同步信號是一些特定的碼組,這種幀同步碼組通常是在某段時(shí)間集中插入信息碼流??紤]到時(shí)間位置的確定,要在建立了各碼元的正確時(shí)間關(guān)系后才有能實(shí)現(xiàn),所以幀同步一般是在位同步的基礎(chǔ)上實(shí)現(xiàn)。
(一)、對幀同步系統(tǒng)的要求
1、 幀同步的捕捉(同步建立)時(shí)間要短,
2、 在一定的同步引入時(shí)間要求下,幀同步信號占用的碼組長度應(yīng)越短越好。
3、 同步系統(tǒng)的工作要穩(wěn)定可靠,一旦建立同步狀態(tài)后,系統(tǒng)不應(yīng)因信道的正常誤碼而失步,即幀同步系統(tǒng)應(yīng)具有一定的抗干擾能力,能識(shí)別假失步和避免偽同步。
數(shù)字信號在傳輸過程中總會(huì)出現(xiàn)誤碼而影響同步。一種是由信道噪聲等原因引起的隨機(jī)誤碼。此類誤碼造成幀同步碼的丟失往往是一種假失步現(xiàn)象。因此,一般規(guī)定幀同步信號丟失的時(shí)間超過一定限度時(shí),才宣布幀同步態(tài)丟失,然后開始新的同步搜索(捕捉態(tài))。這段時(shí)間稱作前方保護(hù)時(shí)間。然而,無論選用何種幀同步碼型,信息碼流中都有可能出現(xiàn)與幀同步碼圖案相同的碼組,即偽同步碼。所以也不能一經(jīng)發(fā)現(xiàn)符合幀同步碼組的信號就進(jìn)入同步態(tài)。只有當(dāng)幀同步信號連續(xù)來了幾幀或一段時(shí)間后,同步系統(tǒng)才可發(fā)出指令進(jìn)入同步態(tài),這段時(shí)間成為后方保護(hù)時(shí)間。 (二)、幀同步的實(shí)現(xiàn)
本接收機(jī)使用集中插入特殊碼元的幀同步方法,集中插入就是把特殊的幀同步碼組集中插在一幀的特定位置(一般是一幀的開始)。接收機(jī)一旦檢測到這個(gè)特定碼組就確定了幀的起始位置,從而獲得幀同步。此種方法可以迅速糾正幀失步,即一旦幀失步,只要在下一幀同步碼就能恢復(fù)幀同步。
本接收機(jī)收到的數(shù)據(jù)幀格式為:
每192個(gè)信息字節(jié)加上2字節(jié)的幀同步碼組成一幀數(shù)據(jù)(如圖)。選用的幀同步碼為0x19D7。
接收端采用幀同步碼的滑動(dòng)法來恢復(fù)幀同步信號。其實(shí)現(xiàn)方法為:在單片機(jī)里設(shè)置16bit移位寄存器、前后方保護(hù)計(jì)數(shù)器來完成前方保護(hù)時(shí)間和后方保護(hù)時(shí)間的計(jì)數(shù),和幀同步狀態(tài)位SFLAG,標(biāo)志系統(tǒng)的同步狀態(tài)。
當(dāng)數(shù)據(jù)流進(jìn)入移位寄存器,與幀同步碼(0x19d7)相比較,如果不同則移位寄存器高位移出低位移入下一比特再進(jìn)行比較,同步系統(tǒng)從不斷接收輸入的數(shù)據(jù)流中捕獲到0x19d7碼組,相當(dāng)于第N幀有同步碼,置SFLAG=1,后方保護(hù)時(shí)間計(jì)數(shù)器開始,如果經(jīng)過192byte信息碼在第N+1幀處檢出同步碼,后方保護(hù)時(shí)間計(jì)數(shù)器加1,應(yīng)在第N+2幀再一次檢出同步碼,后方保護(hù)時(shí)間計(jì)數(shù)器加1,系統(tǒng)進(jìn)入幀同步狀態(tài),進(jìn)行數(shù)據(jù)定時(shí)接收。如果在第N+1幀處不能檢出同步碼或在第N+1幀處檢出同步碼而在第N+2幀處不能檢出同步碼,同步系統(tǒng)都要重新進(jìn)入捕獲狀態(tài)。當(dāng)系統(tǒng)處于同步狀態(tài)即SFLAG=1時(shí),檢測出錯(cuò)誤的幀同步碼,則打開前方保護(hù)時(shí)間計(jì)數(shù)器,如果連續(xù)丟失4(或5)個(gè)幀同步碼,計(jì)數(shù)器計(jì)滿,清SFLAG=0,標(biāo)志系統(tǒng)進(jìn)入捕捉狀態(tài)并停止數(shù)據(jù)定時(shí)接收。
在本接收機(jī)MSP430的程序中將前方保護(hù)時(shí)間計(jì)數(shù)器和后方保護(hù)時(shí)間計(jì)數(shù)器簡化為一個(gè)時(shí)間計(jì)數(shù)器,即SCOUNT。SCOUNT的初始值為0,每接收到一個(gè)正確的幀同步碼,SCOUNT加1,當(dāng)連續(xù)接收到三個(gè)正確的幀同步碼時(shí)(SCOUNT=3)進(jìn)入同步狀態(tài)SFLAG=1,如果在同步狀態(tài)中SCOUNT=4時(shí),再檢測到正確的幀同步碼SCOUNT不再加1,也就是說SCOUNT的最大值為4;當(dāng)檢測到一個(gè)錯(cuò)誤的幀同步碼,SCOUNT減1,如果出現(xiàn)連續(xù)4個(gè)錯(cuò)誤的幀同步碼,SCOUNT減為0,則從同步狀態(tài)進(jìn)入捕獲狀態(tài)。
六、數(shù)據(jù)鏈路層
MSP430單片機(jī)進(jìn)行位同步、幀同步后,將定時(shí)接收的數(shù)據(jù)經(jīng)過以下處理經(jīng)串口輸出。
1、去擾
偽隨機(jī)序列發(fā)生器的生成多項(xiàng)式為,每幀同步字后進(jìn)行一次初始化, 加擾不包括幀同步字,數(shù)據(jù)由偽隨機(jī)序列加擾,可破壞數(shù)據(jù)中的連零,有利于解碼器位同步的鎖定,并分散數(shù)據(jù)信號的能量分布,使對主信號的干擾呈類似白噪音的背景噪音,提高多工數(shù)據(jù)對主信道干擾的主觀評價(jià)得分。
2、去交織和糾錯(cuò)碼
每一子幀用縮短R-S(48,32)編碼,可糾8個(gè)符號(64Bit)的隨機(jī)錯(cuò)誤。再進(jìn)行卷積交織,這樣數(shù)據(jù)系統(tǒng)能糾正長達(dá)384Bit突發(fā)性誤碼。這樣對4.8Kbps 的抗突發(fā)性干擾時(shí)間分別為80ms 。
3、校驗(yàn)
采用CCITT-16校驗(yàn)碼,可檢出超出糾錯(cuò)范圍而造成的誤碼,在每一子幀內(nèi)驗(yàn)出所有≦16位的錯(cuò)誤,可檢出99.998%的17位突發(fā)性錯(cuò)誤,99.997%的18位和大于18位的突發(fā)性錯(cuò)誤,可以滿足大多數(shù)信息及計(jì)算機(jī)通信的要求。涉及金融數(shù)據(jù)及對數(shù)據(jù)有嚴(yán)格要求的信息,用戶可另加其它校驗(yàn)。
4、 輸出數(shù)據(jù)幀形成
接收機(jī)根據(jù)自身的權(quán)限對于不同的業(yè)務(wù)數(shù)據(jù),形成不同的輸出幀格式進(jìn)行數(shù)據(jù)輸出。
七、測試結(jié)果
通過實(shí)際播出測試驗(yàn)證,微型低功耗CPFSK數(shù)據(jù)廣播接收機(jī)的總體設(shè)計(jì)是成功的,實(shí)現(xiàn)了預(yù)期的設(shè)計(jì)目標(biāo),特別是較強(qiáng)的信道糾錯(cuò)編碼極大地改善了接收能力。
2002年8月在北京月壇發(fā)射塔,發(fā)射頻率為91.5MHz調(diào)頻發(fā)射機(jī)上進(jìn)行播出測試,分別使用信息0-信息7傳輸電子文本數(shù)據(jù),實(shí)現(xiàn)用戶的有條件接收;2002年9月使用透明頁格式來傳輸差分GPS的改正數(shù)據(jù),鏈路測試成功;該系統(tǒng)即將用在電子車站牌、路燈控制系統(tǒng)中。