擴頻通信就是待傳輸?shù)男畔?shù)據(jù)被偽隨機碼調制實現(xiàn)頻譜擴展后再傳輸,接收端采用同樣的偽隨機碼進行解調及相關處理,恢復原始數(shù)據(jù)。這種通信方式與一般常見的窄帶通信方式不同,是擴展頻譜后進行寬帶,信,再在接收端進行相關處理,恢復成窄帶后解調據(jù)。擴頻通信具有強抗干擾性、抗噪聲、抗多徑衰落可碼分復用等優(yōu)點,是比較先進的通信技術。
電力線載波通信是指用電力線路作為通信媒體進行通信,目前被廣泛應用于工業(yè)自動控制系統(tǒng)、電能管理系統(tǒng)、家用電器系統(tǒng)及計算機終端接口等場合。它利用現(xiàn)成的電力線路來傳送數(shù)據(jù),無需另外架設通信線路,也不占用現(xiàn)有的通信頻率資源,特別適用于組建小型局域網和實現(xiàn)大樓內的自動控制。但在電力線上進行信號傳輸,工作環(huán)境惡劣,線路阻抗小、干擾大且時變性大,交流噪聲對數(shù)據(jù)的影響及信號的衰減也都很大。擴頻通信方式因其擴頻載波信號的帶寬通常較大,而受干擾的頻率范圍所占比例相對減小,因此可以較好的排除電力線上的隨機干擾。目前,電力線載波通信正朝著使用擴頻通信技術的方向發(fā)展。
PL32OO是具有電力線載波通信功能的內嵌8O51增強型高速微處理器的新型SoC產品。該芯片采用新型的CMOS數(shù)/?;旌瞎に囍圃?,具有成本低、性能高、功能強大等特點,能夠很方便的應用于電力線通信領域。
1 PL32OO的主要特點
PL32OO是內嵌了8O5l指令的高速微處理器芯片,其軟件易于開發(fā),具有8/16位雙模式ALu,能夠8倍速于標準8O51處理器,運行速度快,數(shù)據(jù)處理能力強。圖1為PL32OO的基本功能結構框圖。
PL32OO芯片采用O 35μm超大規(guī)模數(shù)/模混合CMOS制造工藝,是擁有多項知識產權的SoC(System on Chip)設計。該芯片內置高精度數(shù)字多功能電能計量電路,計量標準完全符合國際GB/T 17883和GB/T 172l5;電流通道內置可程序設定增益放大器(PGA);內置了雙通道電流采樣、正/負功指示數(shù)字邏輯電路;內置擴頻通信調制/解調電路;內置4×32段LCD顯示控制/驅動電路或8×8段LED顯示控制/驅動電路;內置可數(shù)字頻率校正的實時鐘;內置可對電能計量精度和實時鐘精度進行溫度分段線性補償?shù)臏囟葌鞲衅?;內?.5V±8%電壓源基準;內置串行程序存儲器編程接口,支持在系統(tǒng)編程(ISP);采用5V單電源供電;內置完善的電源電壓監(jiān)測電路。
2 內嵌微處理器部分功能概述
PL32OO內嵌的增強型8O51兼容微處理器,配置了8/16位ALU、256B+1024B SRAM以及16KB E2PROM、3個8/l 6位定時器/計數(shù)器,1個看門狗定時器以及3個外部中斷,為用戶提供豐富的嵌入式資源和理想的應用開發(fā)平臺。其增強型805 1兼容微處理器,采用超級指令流水線架構,同等主頻情況下,8倍速于標準8051微處理器。另外,該芯片還具有兩個全雙工uART(通用異步收發(fā)器),一個可配置為38k.Hz的紅外通信模式,另一個可配置為RS485通信模式,提供了多種方便的數(shù)據(jù)傳輸方式。
3 載波通信模塊的原理及功能設置
PL3200芯片內集成的載波通信單元采用QPSK調制方式,并擁有可變偽隨機碼速率(帶寬)的多地址通信技術。載波通信單元采用直接序列擴頻方式。在擴頻接收的過程中主要包括載波信號的捕獲和同步。
捕獲是接收模塊在擴頻序列精確同步前,搜索接啦信號,使接收信號的擴頻序列與本地擴頻序列在相位上進入可同步保持的范圍之內,即二者的相位在一個擴頻序列碼元之內。由于載波通信單元所選用的擴頻偽碼舅有很強的自相關性,所以通過比較本地偽碼和接收序只之間的相關性與設定閾值的高低,就能在捕獲過程中勢定是否停止偽碼的滑動,以完成捕獲。捕獲完成后進A
跟蹤階段,動態(tài)地調整本地偽碼產生器的時鐘速率,懂本地偽碼能夠自動地和接收到信號的偽隨機碼保持精確目步。擴頻序列的跟蹤電路采用全數(shù)字基帶延遲鎖定環(huán)(delay locked loop)電路。在載波通信單元每次置為發(fā)送態(tài)后,硬件會首先發(fā)送40個偽碼周期的全“1”序列,用于使接收端與發(fā)送端的偽隨機碼同步和用于識別幀頭的8個偽碼周期的幀頭序列,軟件不需要進行相應的處理。在載波通信單元置為接收態(tài)后,硬件會在每次偽隨n碼l司步后,開始從數(shù)據(jù)流中搜尋幀頭序列。當檢出幀*序列后,才真正開始接收數(shù)據(jù),并以字節(jié)的方式送到SSC_BUF寄存器中。在載波通信單元,每處理一個字節(jié);的數(shù)據(jù),都是通過SSC_BUF寄存器與CPU之間進行數(shù)I镕交互實現(xiàn)的。
PL3200對擴頻數(shù)據(jù)采用QPSK調制方式,其載波中0頻率為120kHz,偽隨機碼速率可達到30kbps和15kbps。根據(jù)偽隨機碼的速率不同,數(shù)據(jù)速率可達到1 kbp s和500bps。由于該芯片采用了63位的Gold/Kasami序列,從而實現(xiàn)了碼分多址,其地址數(shù)目最多可達40個,其中32個Gold序列,8個Kasami序列,由于使用了擴頻技術,可使各地址之間的干擾減到最小。
載波通信單元每次由收態(tài)轉為發(fā)態(tài)后,CPU應在4ms內將新的待發(fā)數(shù)據(jù)填人到SSC_BUF寄存器中,否則硬件將會在4m s后,自動由發(fā)態(tài)轉為收態(tài)。載波通信單元處于發(fā)態(tài)時,應該在每次發(fā)送緩沖標志為空時,立即將新的待發(fā)數(shù)據(jù)填入SSC_BUF寄存器中。當最后一字節(jié)待發(fā)數(shù)據(jù)向SSC_BUF寄存器填入完畢后,CPU進行的數(shù)據(jù)交換過程結束。載波通信單元在全部數(shù)據(jù)發(fā)送完成后,會自動由發(fā)態(tài)轉為收態(tài)(強制的由發(fā)態(tài)置為收態(tài)可能會導致最后一字節(jié)數(shù)據(jù)丟失)。在接收端,每次通信數(shù)據(jù)包正常接收完畢后,軟件可以通過對載波通信狀態(tài)寄存器(00H)的寫操作,來強制通知接收邏輯重新開始新的數(shù)據(jù)幀搜索。
PL3200載波通信單元的具體設定,是通過對載波通信寄存器組(SSCRegister。Bank)不同地址的寄存器,寫入對應的控制字來實現(xiàn)的。設定功能時,先向載波通信控制字地址選擇寄存器(SSC_ADR)中寫入選中的載波通信寄存器組的地址,再向載波通信控制字數(shù)據(jù)寄存器(SSC_DAT)寫入設定的控制字。載波通信寄存器組(SSCRegiste r’Bank)各地址對應的寄存器如表l所列。
在PL3200的載波通信寄存器組中,對地址為02H(載波通信控制寄存器1)、04H(偽隨機碼捕獲門限寄存器)和05H(偽隨機碼精同步門限寄存器)進行寫操作時,要取消寫保護,才可以將數(shù)據(jù)寫入對應的寄存器中。若對寄存器不再進行寫操作時,應將寫保護使能。取消寫保護的方法是,用程序向SSC_ADR寄存器寫入FFH,選中寫保護寄存器的地址,再向SSC_DAT寄存器寫入FFH,即可取消寫保護,并由程序向相應的寄存器進行寫操作。在對相應的寄存器進行完寫操作后,由程序向SSC_ADR寄存器寫入FFH,再向SSC_DAT寄存器中寫入一非FFH的數(shù)據(jù),寫保護將會被使能。在載波通信寄存器組中,00H的寄存器用來指示載波通信單元處于收態(tài)還是發(fā)態(tài),以及數(shù)據(jù)和幀頭的接收發(fā)送標志;02H的寄存器可設置選擇偽碼的種類(Kasami碼或是Gold碼)、偽隨機碼的地址選擇位(Kasami碼可選8個地址,Gold碼可選32個地址)以及偽隨機碼的速率(30K碼速率或l 5K碼速率)及由此確定的數(shù)據(jù)速率(1Kbps或500bps);03H的寄存器用來設置偽隨機碼捕獲的門限閩值,在載波通信單元為接收態(tài)時,設定本地與接收到的偽隨機碼序列相位同步的捕獲門限值,硬件會按每個偽碼周期對本地產生的偽碼與接收到的偽碼進行計算,計算的結果與門限值比較,若小于門限值將進行一次相位調整,調整幅度為半個偽碼碼元寬度, 直到高于設定的捕獲門限值時, 才不再作調整,一般若偽碼碼率為30K時,捕獲門限值將調整至40H左右;05H的寄存器用于設定在接收狀態(tài)時,本地與發(fā)送端偽隨機碼序列相位同步的糟同步門限值,當高于偽碼捕獲門限值時, 將進行精同步調整,硬件可以識別本地偽碼和接收到的偽碼相位是超前還是滯后,從而進行向前或向后的相位調整。 當小于設定的門限值時,認為精同步已經同步, 將不再進行調整。
4 應用于擴頻載波通信的設計
應用PL3200的擴頻載波通信功能,設計一個數(shù)據(jù)收發(fā)平臺。數(shù)據(jù)由PC機A的串口RS232發(fā)出,經MAX232電平轉換后,送入芯片PL3200。在芯片中,先由擴展串口UART接收數(shù)據(jù),經內嵌8051的控制處理,送入載波通信單元,對數(shù)據(jù)進行直接序列擴頻,擴頻后的信號經120kHz的載波頻率調制后輸出。此信號經功率放大后可由線圈耦合到低壓電力線上, 實現(xiàn)電力線載波通信。在接收端, 先通過線圈將電力線上的信號耦合出來, 對信號進行濾波限幅,將限幅后的信號送入PL3200進行捕獲、同步及解擴處理,經由內嵌8051的控制,由芯片的UART串口,經電平轉換后,送到PC機B的RS232接口,進入PC機。反之,B的數(shù)據(jù)按相反的路徑傳送給A。整個平臺的結構框圖如圖2所示。
載波通信為總線方式通信,所以載波單元的常態(tài)必須設置為接收態(tài),對載波模塊可分配不同的通信地址。由于載波通信速率相對于主頻低很多,為提高CPU效率,數(shù)據(jù)的接收和發(fā)送均設計為中斷方式處理,每次進入中斷,完成對數(shù)據(jù)接收或發(fā)送的處理操作。
按照數(shù)據(jù)的傳送過程,用C語言編寫芯片的控制程序,設計主程序流程如圖3所示。
系統(tǒng)在上電后進入主程序,在主程序的延時階段進行復位操作,隨后進行資源初始化操作,對寄存器作初始化設置。為了防止程序因為意外原因而導致死機,PL3200專門設計了一套看門狗電路,當程序死機后,經過一段由寄存器控制的定時時間后,看門狗電路重新復位8051。所以,程序在運行時,每隔一段時間間隔,就要不斷地復位看門狗電路。將復位看門狗電路的操作編成中斷子程序,每隔一段時間后對變量賦值,復位看門狗電路,此即喂狗操作。在進行部分寄存器的初始化重置后,程序依次檢查載波接收中斷和串口接收中斷。如有載波數(shù)據(jù)。則進入載波接收中斷,將數(shù)據(jù)送入載波緩存數(shù)組,隨后送串口發(fā)送。如有串口數(shù)據(jù),則按照協(xié)議格式將數(shù)據(jù)取出,存入串口數(shù)據(jù)緩存數(shù)組,待數(shù)據(jù)接收完整后,進入載波發(fā)送中斷,將緩存中的數(shù)據(jù)送載波發(fā)送,成功后將標志位清除。主程序再次進入循環(huán),檢測載波中斷或串口中斷。主程序對中斷進行循環(huán)檢測,直到有數(shù)據(jù)中斷發(fā)生,進入中斷處理程序。
當載波通信單元中斷使能位有效時,CPU的中斷2將會被配置成在載波通信中,用于數(shù)據(jù)字節(jié)發(fā)送或接收的中斷。發(fā)生載波中斷時,程序查詢載波通信寄存器地址00H的bit0位:當該位為0時,進入載波接收狀態(tài);當該位為l時,進入載波發(fā)送狀態(tài)。
載波接收中斷的流程如圖4所示。在載波接收的過程中,先要查詢載波通信寄存器00H的幀頭標志位,如收到幀頭,且芯片處于等待接收狀態(tài),則接收數(shù)據(jù)的第一字節(jié);如接收的不是幀頭,則判斷幀頭是否已被接收,而繼續(xù)接收后續(xù)字節(jié)。最后,將接收的數(shù)據(jù)送入載波數(shù)據(jù)緩存數(shù)組,如接收字節(jié)數(shù)超過設定值,則置接收成功位給串口, 并清除正在接收狀態(tài)位,結束載波中斷,進入串口發(fā)送中斷。
載波發(fā)送中斷的流程如圖5所示。當串口接收完數(shù)據(jù)后,置載波發(fā)送標志位,進入載波發(fā)送中斷。中斷程序將串口緩存數(shù)據(jù)組中的數(shù)據(jù)按字節(jié)送入載波緩存發(fā)送,直至載波發(fā)送的字節(jié)數(shù)超過設定字節(jié)數(shù), 結束載波發(fā)送,并清串口緩存數(shù)據(jù)組的數(shù)據(jù)。在清除載波發(fā)送標志后,結束中斷,返回主程序,進行下一輪的發(fā)送接收查詢。
結 語
使用SoC芯片PL3200設計電力線載波擴頻數(shù)據(jù)平臺,應用極其簡便,使用C語言來進行程序設計非常方便。同時,由于使用靈活的ISP編程方式,使程序的修改及下載也十分方便,可以靈活的進行功能擴展。