摘要:PL3105芯片是為智能儀表設計的專用SoC芯片,具有8051指令兼容的高速微處理器、直序擴頻的載波通信等強大功能。本文介紹PL3105的主要特點及其載波通信原理,分析針對載波通信應用的軟件設計方法。
引言
隨著嵌入式系統及集成電路技術的飛速發展,針對智能儀表應用而設計的專用芯片獲得了長足發展。智能儀表一般要具備CPU單元、顯示單元、標準工業總線接口、A/D信號轉換、實時鐘、看門狗等功能。傳統的智能儀表設備在選定了CPU后,需要配置復雜的功能芯片及接口芯片,完成顯示驅動、外部程序存儲、數據存儲及其它要求功能。眾多的接口芯片導致儀表的體積大、成本高、功耗增加、可靠性降低;同時調試、維護困難。
為適應智能儀表的應用需要,針對某類產品的專用單芯片上系統SoC(System on Chip)解決方案獲得了巨大的發展機遇。國內外各IC設計公司都針對不同領域、不同應用需求推出了各自的SoC產品。具有8051指令兼容高速微處理器的SoC產品PL3105,采用最新的CMOS數/模混合工藝制造,是針對智能儀表行業應用而推出的低成本、高性能的解決方案。
1 PL3105的主要特點
采用8051指令兼容的高速微處理器,軟件易于開發;具有8/16位雙模式ALU、8倍速于標準51,運行速度快,數據處理能力強。圖1為PL3105的基本功能結構方框圖。
針對智能儀表的應用,PL3105內部集成了2通道16位精度的∑—Δ調制A/D,LED(8×8筆劃式)/LCD(24×4筆劃式)顯示驅動模塊,2個UART,內置1KB的RAM和16KB的E2PROM程序存儲器(采用ISP方式編程);內置低功耗實時鐘。同時集成了完善的電壓監測,上電、掉電復位,看門狗電路,確保了工業環境下運行時系統的可靠性。
內嵌的載波通信控制單元,使產品具備了在低壓電力線上組網、遠程通信的強大功能;最低壓電力線載波通信接口專用芯片PL2101的升級,具有強抗帶內同頻干擾能力,靈敏度高的優點。內嵌的CPU通過配置寄存器來實現對載波通信的控制,比PL2101芯片的接口方便,可靠性更高。
2 載波通信的工作原理
載波通信采用直接序列擴頻的BPSK(Bipolar Phase Shift Keying)調制解調方式:將要發送的信息用偽隨機碼序列擴展到較這的頻帶上,在接收端用同樣的偽隨機碼序列來進行同步接收,恢復信息。接收的過程包括載波信號的捕獲和同步。
捕獲是接收模塊在擴頻序列精確同步前,搜索接收信號,使接收信號的擴頻序列與本地擴頻序列在相位上進入可同步保持的范圍之內,即二者的相位在一個擴頻序列碼元之內。采用每次滑動步長為半個位的串行積分搜索方式,理論上最大捕獲時間需要29個數據位(15位PN碼時)。捕獲完成后進入跟蹤階段,動態地高速本地偽碼產生器的時鐘速率,使本地偽碼能夠自動地和接收到信號的偽碼保持精確同步。擴頻序列的跟蹤電路采用全數字基帶延遲鎖定環(delay locked loop)電路。
解擴過程為保證捕獲和同步均能完成,發送模塊在每次傳送有效數據前至少發送40個位全“1”,用作捕獲和同上訓練(15位PN碼)。
由于所選用的擴頻偽碼具有很強的自相關性,所以通過比較本地偽碼和接收序列之間的相關性與設定閾值的高低,來判定是否停止偽碼的滑動、完成捕獲。500bps時,默認的捕獲門限值為30H。載波通信的擴頻、解擴工作完全由SoC內部的硬件電路實現,簡單可靠,解擴閾值可以軟件調節。
圖2(a)、(b)為PL3105內部的載波通信發送/接收工作時序圖,收發數據位在芯片內部連接到P3.7,芯片未做封裝引出。
載波通信控制器采用幀同步方式的串行移位通信,半雙工方式,速率500bps/250bps可選;中心頻率為120kHz,帶寬為±7.5kHz。內嵌的CPU使用外部中斷2(INT2),同步收發中斷,載波通信配置流程如圖3所示。
①使能INT2中斷(EX2=1),且為下降沿觸發方式(IT2=0)。
②使能載波通信控制位PLM_SSC(EXT_CFG.0=1,INT2作為載波通信同步信號的中斷。
③載波收發控制位PLM_RS(EXT_CTRL.0)=1時,載波控制器處于發送狀態;PLM_RS(EXT_CTRL.0)=0時,載波控制器處于接收狀態。
④載波發送復位寄存器:用于避免載波通信模塊長時間處于發送狀態,使整個通信系統處于失控狀態而設置。它是一個13位計數器,發送狀態時,計數器速減,遞減到0后,載波發送模式被強制返回接收態;接收態時,計數器停止工作。長時間發送數據時,需要向PLM_RST寄存器寫入“A2H”,寫入后計數器自動復位,保持發送。
低壓電力線載波通信的原理結構框圖如圖4所示。需要配合外圍的功率放大、接收回路工作,載波通信的距離與外圍電路設計優劣、功率大小等密切相關。
3 接收和發送的軟件設計
載波通信為總線方式通信,所以載波模塊的常態必須設置為接收態、不同的載波模塊必須分配不同的通信地址。模塊接收到校驗正確的命令后,只有地址相同的模塊才允許按規約進行應答。由于載波通信速率相對主頻低很多,為提高CPU效率,接收和發送一般均設計為外部中斷方式處理;每次進入中斷,完成對1位數據的接收或發送處理。
按圖3所示流程對模塊進行配置、選擇速率為500bps后,內部自動選擇為15位PN碼。載波通信控制器即進入接收態,進行載波信號的捕獲和同步。
接收時,捕獲和同步過程由載波通信控制單元的硬件電路自動完成,不需要軟件部分參與。由于電力線的哭聲一直存在,所以有效數據前必須增加同步幀頭,依據相關性標準選擇為0x09、0xAF,后續為通信的有效數據體及校驗字節。
圖5為載波通信接收過程框圖。載波通信控制單元解擴出1位數據后,產生一次中斷。接收時,首先采用16位接收窗口、1位滑動方式來接收通信的同步幀頭0x09、0xAF。幀頭接收成功后,后續數據按每8位一個字節的方式進行截取,得到傳送的有效數據。接收過程中,按有關的通信協議進行地址判別、長度接收、校驗計算。地址相同的模塊對符合通信協議的數據進行應答,轉入發送態。
圖6為載波通信發送過程框圖。用于載波通信的主叫方發出命令或接收方的應答。置為載波發送態時,載波通信控制單元發送完1位的擴頻數據,自動產生一次中斷,允許下一次數據發送。根據捕獲和同步過程需要,首先發送至少40位的全“1”;然后按位發送同步幀頭0x09、0xAF;之后根據用戶的有關通信協議按位發送通信地址、數據長度、數據體、校驗等字節。
數據全部發送完成后,載波模塊即可轉入接收態。但為確保待發送數據的最后一個位發送成功,必須在發送完最后一位數據后等到下一次發送中斷到來后,才可以轉換載波發送態到接收態。
載波發送未,將全部數據發送完成前,CPU必須及時向PLM_RST寄存器寫入“A2H”,使計數器復位,避免自動復位提前進入載波接收態。發送中斷程序如下:
void PLM_int(void)interrupt 7//載波收發中斷
{if(PLM_RS==1)zb_tx();//載波發送中斷服務程序
else zb_rx();//載波接收程序服務程序,略
}
void zb_tx(void)//載波發送程序
{if(len8==0)s_byte=buf_send[zbs_count];//取待發送字節到位發送緩沖
ACC=s_byte;
P3.7=ACC^7;//位發送,最高位在前
s_byte=s_byte<<1; //左移
len8++; //移位計數計算
if(len8>7) //8位發送完畢
{zbs_count++; //下一字節
len8=0; //移位計數清零
}
PLM_RS=1; //載波發送允許
PLM_RST=0xA2; //載波發送復位寄存器清空
}
結語
由SoC芯片PL3105設計的具有載波通信功能的智能儀表,在智能電表行業中得到了應用和推廣。其簡單的接收、發射處理方式使應用程序設計十分方便。同時靈活的ISP編程方式,使產品升級換代和功能擴展靈活;達到了低成本、高性能的設計指標。
評論
查看更多