4.4 数据的读写
在进行数据的读写前,应该进行串口的初始化。因为有效指令不会产生动作或者产生错误动作,此时需重新初始化串口。当命令包含写操作时,串口将在下面24个SCLK周期对SDI引脚的数据(从高位开始)记录。寄存器写指令后必须跟24位的数据。比如,写配置寄存器,应先写命令字(0x40)启动写操作,然后,随着24个连续的串行时钟脉冲,CS5460A将从串行输入引脚SDI接收串行输入数据,一旦收到数据,状态机便将数据写入配置寄存器,等待下一个命令。当启动了读命令,串口将在下8个、16个或24个SCLK周期启动SDO脚上的寄存器内容的转移(从高位开始)。寄存器读指令可以终止在8位的边界上(例如,读出时可只读8,16或24位)。同样,数据寄存器读出允许采用“命令链”。因此读寄存器时,微控制器可同时发送新指令,新指令将被立即执行,并可能终止读操作。例如,命令字送入状态机读取某一输出寄存器,进行16个连续的读数据串行时钟脉冲后,执行写命令字(如状态寄存器清零命令),数据从SDI引脚输入,同时剩下的8位读出数据被传送到SDO引脚。又如,用户仅需从读操作中获取16位有效位时,可在SDO读出8位数据后从SDI输入第2个读命令。注意:在读周期,当从SDO引脚输出数据时,必须用SYNC0指令(NOP),使SDI引脚处于选通态。其程序流程如图4所示。
下面是在TI公司的CCS2000编译系统下的读写程序:
5 结 语
这里深入介绍电能采集、传输、接收的过程,系统以TMS320F2812为控制核心,其具有功能强大、功耗低、运算速度快等优点,同时内部又具有128 KB的FLASH,使系统结构紧凑、灵活。CS5460芯片可直接采集电能、电压、电流、功率、功率因数等值。采用高性能RF模块、数据通信等技术,具有长时间存储数据和无线传输数据等功能。