用51兼容芯片PL32OO设计直序扩频平台
扫描二维码
随时随地手机看文章
扩频通信就是待传输的信息数据被伪随机码调制实现频谱扩展后再传输,接收端采用同样的伪随机码进行解调及相关处理,恢复原始数据。这种通信方式与一般常见的窄带通信方式不同,是扩展频谱后进行宽带,信,再在接收端进行相关处理,恢复成窄带后解调据。扩频通信具有强抗干扰性、抗噪声、抗多径衰落可码分复用等优点,是比较先进的通信技术。
电力线载波通信是指用电力线路作为通信媒体进行通信,目前被广泛应用于工业自动控制系统、电能管理系统、家用电器系统及计算机终端接口等场合。它利用现成的电力线路来传送数据,无需另外架设通信线路,也不占用现有的通信频率资源,特别适用于组建小型局域网和实现大楼内的自动控制。但在电力线上进行信号传输,工作环境恶劣,线路阻抗小、干扰大且时变性大,交流噪声对数据的影响及信号的衰减也都很大。扩频通信方式因其扩频载波信号的带宽通常较大,而受干扰的频率范围所占比例相对减小,因此可以较好的排除电力线上的随机干扰。目前,电力线载波通信正朝着使用扩频通信技术的方向发展。
PL32OO是具有电力线载波通信功能的内嵌8O51增强型高速微处理器的新型SoC产品。该芯片采用新型的CMOS数/模混合工艺制造,具有成本低、性能高、功能强大等特点,能够很方便的应用于电力线通信领域。
1 PL32OO的主要特点
PL32OO是内嵌了8O5l指令的高速微处理器芯片,其软件易于开发,具有8/16位双模式ALu,能够8倍速于标准8O51处理器,运行速度快,数据处理能力强。图1为PL32OO的基本功能结构框图。
PL32OO芯片采用O 35μm超大规模数/模混合CMOS制造工艺,是拥有多项知识产权的SoC(System on Chip)设计。该芯片内置高精度数字多功能电能计量电路,计量标准完全符合国际GB/T 17883和GB/T 172l5;电流通道内置可程序设定增益放大器(PGA);内置了双通道电流采样、正/负功指示数字逻辑电路;内置扩频通信调制/解调电路;内置4×32段LCD显示控制/驱动电路或8×8段LED显示控制/驱动电路;内置可数字频率校正的实时钟;内置可对电能计量精度和实时钟精度进行温度分段线性补偿的温度传感器;内置2.5V±8%电压源基准;内置串行程序存储器编程接口,支持在系统编程(ISP);采用5V单电源供电;内置完善的电源电压监测电路。
2 内嵌微处理器部分功能概述
PL32OO内嵌的增强型8O51兼容微处理器,配置了8/16位ALU、256B+1024B SRAM以及16KB E2PROM、3个8/l 6位定时器/计数器,1个看门狗定时器以及3个外部中断,为用户提供丰富的嵌入式资源和理想的应用开发平台。其增强型805 1兼容微处理器,采用超级指令流水线架构,同等主频情况下,8倍速于标准8051微处理器。另外,该芯片还具有两个全双工uART(通用异步收发器),一个可配置为38k.Hz的红外通信模式,另一个可配置为RS485通信模式,提供了多种方便的数据传输方式。
3 载波通信模块的原理及功能设置
PL3200芯片内集成的载波通信单元采用QPSK调制方式,并拥有可变伪随机码速率(带宽)的多地址通信技术。载波通信单元采用直接序列扩频方式。在扩频接收的过程中主要包括载波信号的捕获和同步。
捕获是接收模块在扩频序列精确同步前,搜索接啦信号,使接收信号的扩频序列与本地扩频序列在相位上进入可同步保持的范围之内,即二者的相位在一个扩频序列码元之内。由于载波通信单元所选用的扩频伪码舅有很强的自相关性,所以通过比较本地伪码和接收序只之间的相关性与设定阈值的高低,就能在捕获过程中势定是否停止伪码的滑动,以完成捕获。捕获完成后进A
跟踪阶段,动态地调整本地伪码产生器的时钟速率,懂本地伪码能够自动地和接收到信号的伪随机码保持精确目步。扩频序列的跟踪电路采用全数字基带延迟锁定环(delay locked loop)电路。在载波通信单元每次置为发送态后,硬件会首先发送40个伪码周期的全“1”序列,用于使接收端与发送端的伪随机码同步和用于识别帧头的8个伪码周期的帧头序列,软件不需要进行相应的处理。在载波通信单元置为接收态后,硬件会在每次伪随n码l司步后,开始从数据流中搜寻帧头序列。当检出帧*序列后,才真正开始接收数据,并以字节的方式送到SSC_BUF寄存器中。在载波通信单元,每处理一个字节;的数据,都是通过SSC_BUF寄存器与CPU之间进行数I镕交互实现的。
PL3200对扩频数据采用QPSK调制方式,其载波中0频率为120kHz,伪随机码速率可达到30kbps和15kbps。根据伪随机码的速率不同,数据速率可达到1 kbp s和500bps。由于该芯片采用了63位的Gold/Kasami序列,从而实现了码分多址,其地址数目最多可达40个,其中32个Gold序列,8个Kasami序列,由于使用了扩频技术,可使各地址之间的干扰减到最小。
载波通信单元每次由收态转为发态后,CPU应在4ms内将新的待发数据填人到SSC_BUF寄存器中,否则硬件将会在4m s后,自动由发态转为收态。载波通信单元处于发态时,应该在每次发送缓冲标志为空时,立即将新的待发数据填入SSC_BUF寄存器中。当最后一字节待发数据向SSC_BUF寄存器填入完毕后,CPU进行的数据交换过程结束。载波通信单元在全部数据发送完成后,会自动由发态转为收态(强制的由发态置为收态可能会导致最后一字节数据丢失)。在接收端,每次通信数据包正常接收完毕后,软件可以通过对载波通信状态寄存器(00H)的写操作,来强制通知接收逻辑重新开始新的数据帧搜索。
PL3200载波通信单元的具体设定,是通过对载波通信寄存器组(SSCRegister。Bank)不同地址的寄存器,写入对应的控制字来实现的。设定功能时,先向载波通信控制字地址选择寄存器(SSC_ADR)中写入选中的载波通信寄存器组的地址,再向载波通信控制字数据寄存器(SSC_DAT)写入设定的控制字。载波通信寄存器组(SSCRegiste r’Bank)各地址对应的寄存器如表l所列。
在PL3200的载波通信寄存器组中,对地址为02H(载波通信控制寄存器1)、04H(伪随机码捕获门限寄存器)和05H(伪随机码精同步门限寄存器)进行写操作时,要取消写保护,才可以将数据写入对应的寄存器中。若对寄存器不再进行写操作时,应将写保护使能。取消写保护的方法是,用程序向SSC_ADR寄存器写入FFH,选中写保护寄存器的地址,再向SSC_DAT寄存器写入FFH,即可取消写保护,并由程序向相应的寄存器进行写操作。在对相应的寄存器进行完写操作后,由程序向SSC_ADR寄存器写入FFH,再向SSC_DAT寄存器中写入一非FFH的数据,写保护将会被使能。在载波通信寄存器组中,00H的寄存器用来指示载波通信单元处于收态还是发态,以及数据和帧头的接收发送标志;02H的寄存器可设置选择伪码的种类(Kasami码或是Gold码)、伪随机码的地址选择位(Kasami码可选8个地址,Gold码可选32个地址)以及伪随机码的速率(30K码速率或l 5K码速率)及由此确定的数据速率(1Kbps或500bps);03H的寄存器用来设置伪随机码捕获的门限闽值,在载波通信单元为接收态时,设定本地与接收到的伪随机码序列相位同步的捕获门限值,硬件会按每个伪码周期对本地产生的伪码与接收到的伪码进行计算,计算的结果与门限值比较,若小于门限值将进行一次相位调整,调整幅度为半个伪码码元宽度, 直到高于设定的捕获门限值时, 才不再作调整,一般若伪码码率为30K时,捕获门限值将调整至40H左右;05H的寄存器用于设定在接收状态时,本地与发送端伪随机码序列相位同步的糟同步门限值,当高于伪码捕获门限值时, 将进行精同步调整,硬件可以识别本地伪码和接收到的伪码相位是超前还是滞后,从而进行向前或向后的相位调整。 当小于设定的门限值时,认为精同步已经同步, 将不再进行调整。
4 应用于扩频载波通信的设计
应用PL3200的扩频载波通信功能,设计一个数据收发平台。数据由PC机A的串口RS232发出,经MAX232电平转换后,送入芯片PL3200。在芯片中,先由扩展串口UART接收数据,经内嵌8051的控制处理,送入载波通信单元,对数据进行直接序列扩频,扩频后的信号经120kHz的载波频率调制后输出。此信号经功率放大后可由线圈耦合到低压电力线上, 实现电力线载波通信。在接收端, 先通过线圈将电力线上的信号耦合出来, 对信号进行滤波限幅,将限幅后的信号送入PL3200进行捕获、同步及解扩处理,经由内嵌8051的控制,由芯片的UART串口,经电平转换后,送到PC机B的RS232接口,进入PC机。反之,B的数据按相反的路径传送给A。整个平台的结构框图如图2所示。
载波通信为总线方式通信,所以载波单元的常态必须设置为接收态,对载波模块可分配不同的通信地址。由于载波通信速率相对于主频低很多,为提高CPU效率,数据的接收和发送均设计为中断方式处理,每次进入中断,完成对数据接收或发送的处理操作。
按照数据的传送过程,用C语言编写芯片的控制程序,设计主程序流程如图3所示。
系统在上电后进入主程序,在主程序的延时阶段进行复位操作,随后进行资源初始化操作,对寄存器作初始化设置。为了防止程序因为意外原因而导致死机,PL3200专门设计了一套看门狗电路,当程序死机后,经过一段由寄存器控制的定时时间后,看门狗电路重新复位8051。所以,程序在运行时,每隔一段时间间隔,就要不断地复位看门狗电路。将复位看门狗电路的操作编成中断子程序,每隔一段时间后对变量赋值,复位看门狗电路,此即喂狗操作。在进行部分寄存器的初始化重置后,程序依次检查载波接收中断和串口接收中断。如有载波数据。则进入载波接收中断,将数据送入载波缓存数组,随后送串口发送。如有串口数据,则按照协议格式将数据取出,存入串口数据缓存数组,待数据接收完整后,进入载波发送中断,将缓存中的数据送载波发送,成功后将标志位清除。主程序再次进入循环,检测载波中断或串口中断。主程序对中断进行循环检测,直到有数据中断发生,进入中断处理程序。
当载波通信单元中断使能位有效时,CPU的中断2将会被配置成在载波通信中,用于数据字节发送或接收的中断。发生载波中断时,程序查询载波通信寄存器地址00H的bit0位:当该位为0时,进入载波接收状态;当该位为l时,进入载波发送状态。
载波接收中断的流程如图4所示。在载波接收的过程中,先要查询载波通信寄存器00H的帧头标志位,如收到帧头,且芯片处于等待接收状态,则接收数据的第一字节;如接收的不是帧头,则判断帧头是否已被接收,而继续接收后续字节。最后,将接收的数据送入载波数据缓存数组,如接收字节数超过设定值,则置接收成功位给串口, 并清除正在接收状态位,结束載波中断,进入串口发送中断。
载波发送中断的流程如图5所示。当串口接收完数据后,置载波发送标志位,进入载波发送中断。中断程序将串口缓存数据组中的数据按字节送入载波缓存发送,直至载波发送的字节数超过设定字节数, 结束载波发送,并清串口缓存数据组的数据。在清除载波发送标志后,结束中断,返回主程序,进行下一轮的发送接收查询。
结 语
使用SoC芯片PL3200设计电力线载波扩频数据平台,应用极其简便,使用C语言来进行程序设计非常方便。同时,由于使用灵活的ISP编程方式,使程序的修改及下载也十分方便,可以灵活的进行功能扩展。