微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > 用51兼容芯片PL3200设计直序扩频平台

用51兼容芯片PL3200设计直序扩频平台

时间:01-09 来源:单片机与嵌入式系统应用 点击:

表1 载波通信寄存器组(SSC Register Bank)

  在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码速率或15K码速率)及由此确定的数据速率(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所示。

图2 数据载波通信框图

  载波通信为总线方式通信,所以载波单元的常态必须设置为接收态,对载波模块可分配不同的通信地址。由于载波通信速率相对于主频低很多,为提高CPU效率,数据的接收和发送均设计为中断方式处理,每次进入中断,完成对数据接收或发送的处理操作。

  按照数据的传送过程,用C语言编写芯片的控制程序,设计主程序流程如图3所示。

图3 主程序流程图

  系统在上电后进入主程序,在主程序的延时阶段进行复位操作,随后进行资源初始化操作,对寄存器作初始化设置。为了防止程序因为意外原因而导致死机,PL3200专门设计了一套看门狗电路,当程序死机后,经过一段由寄存器控制的定时时间后,看门狗电路重新复位8051。所以,程序在运行时,每隔一段时间间隔,就要不断地复位看门狗电路。将复位看门狗电路的操作编成中断子程序,每隔一段时间后对变量赋值,复位看门狗电路,此即喂狗操作。在进行部分寄存器的初始化重置后,程序依次检查载波接收中断和串口接收中断。如有载波数据,则进入载波接收中断,将数据送入载波缓存数组,随后送串口发送。如有串口数据,则按照协议格式将数据取出,存入串口数据缓存数组,待数据接收完整后,进入载波发送中断,将缓存中的数据送载波发送,成功后将标志位清除。主程序再次进入循环,检测载波中断或串口中断。主程序对中断进行循环检测,直到有数据中断发生,进入中断处理程序。

  当载波通信单元中断使能位有效时,CPU的中断2将会被配置成在载波通信中,用于数据字节发送或接收的中断。发生载波中断时,程序查询载波通信寄存器地址00H的bit0位:当该位为0时,进入载波接收状态;当该位为1时,进入载波发送状态。

  载波接收中断的流程如图4所示。在载波接收的过程中,先要查询载波通信寄存器00H的帧头标志位,如收到帧头,且芯片处于等待接收状态,则接收数据的第一字节;如接收的不是帧头,则判断帧头是否已被接收,而继续接收后续字节。最后,将接收的数据送入载波数据缓存数组,如接收字节数超过设定值,则置接收成功位给串口,并清除正在接收状态位,结束载波中断,进入串口发送中断。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top