基于单片机控制的智能电表抄表系统_第1页
基于单片机控制的智能电表抄表系统_第2页
基于单片机控制的智能电表抄表系统_第3页
基于单片机控制的智能电表抄表系统_第4页
基于单片机控制的智能电表抄表系统_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机控制的智能电表抄表系统基于单片机控制的智能电表抄表系统 作者:LZ 摘摘 要要 近年来,随着单片机成本的降低、通信技术的快速发展以及通信技术的多样化, 单片机控制结合通信技术,被越来越频繁的运用到人们的生活中。随着我国电网建设 不断的深入进行,家用电表数量急剧上升,传统的人力抄表方式费时效率低,而且准 确性不高,这个传统的方式已经不符合当今电力改革的要求,研究出智能电表抄表系 统是必然的趋势。 本论文研究的是“基于单片机控制的智能电表抄表系统”。电表抄表系统采用 ST 意法半导体单片机 STM32F103C8T6 和电力载波通信芯片 ST7540,以及电力载波电路 和电平转换电路等外

2、围电路。在单片机控制下,结合 FSK 调制解调通信技术的电表抄 表系统的硬件和软件实现,绘制对应的电路原理图并且实现、编写单片机代码和反复 进行软硬件调试等一系列的相关工作,最终做成抄表电路板和软件管理系统。该系统 具有可靠性高、可扩展性强、成本费用低、计量准确等特点。主要用于电能信息的自 动抄录,实现了居民住宅的电量自动检测、收费和管理。 关键词:关键词:智能电表抄表系统;单片机 STM32F103C8T6;ST7540;MAX232 Abstract In recent years, with the rapid development of communication technolog

3、y, the diversification to reduce chip cost and communication technology, microprocessor control with communication technology, is more and more frequently used in peoples lives. With the deepening of Chinas power grid construction has been a sharp rise in the number of household electric meter, mete

4、r reading, human traditional time-consuming low efficiency, and the accuracy is not high, the traditional way can not meet the requirements of the reform of electric power, smart meter reading system is the inevitable trend of. The research of this paper is the smart meter reading system based on si

5、ngle chip microcomputer. Automatic meter reading system based on ST single chip microcomputer STM32F103C8T6 and meaning law semiconductor power load and power line carrier communication chip STM7540, circuit and voltage conversion circuit and so on. Under the control of the microcontroller, combined

6、 with the automatic meter reading system B-PSK modulation and demodulation of communication technology, the realization of hardware and software, circuit schematic drawing, and the corresponding program and repeated debugging of hardware and software of a series of related work, and ultimately make

7、the meter reading circuit board and software management system. The system has high reliability, scalability, low cost, accurate measurement etc. Mainly used in automatic transcribing electricity information, the automatic detection, residential electricity charge and management. KeyWords:The smart

8、meter reading system; STM32F103C8T6 MCU; ST7540; MAX232 目目 录录 1 1 绪论绪论 .1 1 2 2 总体方案设计总体方案设计 .3 3 2.1 电表抄表系统功能介绍.3 2.2 电路模块设计.4 2.3 电路所涉主要元器件的功能介绍.5 2.3.1 STM32F103C8T6 单片机芯片 .5 2.3.2 ST7540 电力线载波 modem 芯片的使用 .8 2.3.3 MAX232 电平转换芯片 .18 3 3 硬件电路的设计硬件电路的设计 .2020 3.1 电路设计软件 CADENCE 介绍.20 3.2 整体电路原理图.21

9、 3.3 各个电路模块设计解析.21 3.3.1 晶振电路 .21 3.3.2 复位电路 .22 3.3.3 单片机启动模式选择电路 .23 3.3.4 TTL/RS232 电平转换电路 .24 3.3.5 单片机代码烧录电路 .25 3.3.6 I2C 访问 EEPROM 电路 .25 3.3.7 发送有源滤波电路 .26 3.3.8 发送无源滤波电路 .27 3.3.9 接收无源滤波电路 .28 4 4 软件设计软件设计 .3030 4.1 单片机与 ST7540 的程序设计 .30 4.1.1 ST7450 初始化 .31 4.1.2 写数据.31 4.1.3 读数据.32 4.1.4

10、解析数据帧.33 4.2 单片机与 PC 之间的通信.34 4.2.1 读数据.35 4.2.2 写数据.36 4.2.3 解析帧.37 4.3 读写电表数据 .37 4.3.1 读电表数据程序.37 4.3.2 写电表数据程序 .38 5 5 软件调试软件调试 .3939 5.1 软件调试使用的工具.39 5.2 软件调试遇到的问题.39 5.2.1 单片机与 PC 串口连线问题 .39 5.1.2 串口数据乱码问题 .40 结结 论论 .4242 参参 考考 文文 献献 .4343 附录附录 A A 整体电路原理图整体电路原理图.4444 1 1 绪论绪论 电力线载波通信是电力系统特有的通

11、信手电,它以电力线作传输媒介,不 需另外架设通信线路,电力线结构坚固,作为通信媒介使用可靠性很高、能与 电力网建设同步等独有的有点。 通过电力线载波通信方式传送信息,其历史可追溯到 20 世纪初期;到 20 世纪中期,低频高压电力线通信技术已广泛用于监控、远程指示、设备保护以 及语音传输等领域;我国从 50 年代开始引进苏联和捷克的载波设备,主要是满 足生产调度的需要。20 世纪 50 年代后至 90 年代早期的三十多年,电力线载波 通信开始应用在中压和低压电网上,其开发工作主要集中在电力线自动抄表、 电网负载控制和供电管理等领域;值得注意的是,在 70 年代期间,半导体技术 迅速普及,在各个

12、电子应用领域已经逐渐取代了体积大,功耗高的电子管,电 力线载波机从电子管式向晶体管式转化也势在必行。20 世纪 90 年代后期至今, 电力线载波通信开始研发 Internet 应用产品,并取得试验应用【1】。 八九十年代以来,我国在电力事业方面,不管是理论研究,或者是操作实 践都在不断地取得突破,电网的规模越做越大,各种电站、机组、超高压线路 不断增加。我国研究技术虽然起步比较晚,但是发展的速度还是非常可观,有 如下几方面: (1)我国建设拥有全世界长度排名第二的电力输电线路,为将来发展电信 互联网提供了坚实的基础。 (2)可实现载波电路长达 1053km 的两换流站的运行数据控制信息的传输。

13、 (3)电力载波通信部分实现了“五化”,即频谱标准化、产品系列化、功 能模块化、器件集成化、监测微机化。 (4)数字式电力线载波机( DPLCDigital Power Line Carrier) 的开 发研制也取得了实质性的进展。 传统低压电力线载波通信一般采用频带传输,利用载波调制将携带信息的 数字信号的频谱搬移到较高的载波频率上。 基本的调制方式分为幅值键控(ASK)、频移键控(FSK)和相移键控 (PSK)。对于低压电力线载波通信而言,FSK 系统要求传输带宽比较大,一般 用于低速数据传输,PSK 系统的综合性能最好,因此在载波通信技术中得到了 广泛的应用。但 ASK 系统由于误码率指

14、标很差,在实际中应用较少。 电力线载波通信技术发展现状存在的问题【5】: (1)电力线对数据传输的限制表现在配电变压器对信号有阻隔作用,所以 电力载波信号只能在一个配电变压器区域范围内传送。 (2)三相电力线间有非常大的信号损失(大约在 10dB-30dB),但一般只 能在单相电力线上传送。 (3)电力线信道本身存在严重的频率选择和噪声干扰。 电力线如今所表现出来的高衰减,高噪声,高失真等缺点,对于现今电网 复杂程度越来越高、对载波通信质量的标准也不断提升,传统的技术已经没办 法适应高速路、大容量的要求。 在国外,智能抄表系统技术起步的比较早并且研究深入,技术已经成熟, 而我国的国情不同,不能

15、照葫芦画瓢。虽然也有不少这方面的研究,但是技术 限制还是非常大的。鉴于电力线载波通信存在的问题比较严重和复杂,本文研 究的智能电表抄表系统是基于电力线载波通信技术上,加上相应的软件程序开 发设计,使系统运行相对稳定,更重要的是电表计量的准确性方面的提高。 本文设计的系统优点: (1)系统采用一对多的通信模式,PC 管理平台作为主节点,其他终端节点 为从节点,多,所有的控制命令都是通过主节点发出,相应的节点回应映,避免 了通信冲突的问题,同时简化了复杂通信中的侦听冲突等问题。 (2)本系统按照一定的格式定义了 PC 和主板卡,以及主板卡和从板卡间 通信数据帧,大大提高了通信可靠性,也为日后功能扩

16、展提供了方便。 社会在发展,技术在更新,想象一下现在只要在控制中心电脑里,敲入一 指令,就能将某个小区或者某一栋楼里用户家中的电表读数传回来,这是一个 多么方便的事情。电力的抄表工人不用顶着太阳或冒着大雨在恶列的环境中挨 家挨户去抄表,同时杜绝错抄,故意抄少抄多等个人行为。也为企业节省成本, 提高效率。 所以本论文正是研究基于单片机控制抄表系统的设计与制作,希望这一研 究能使实际生活变的更加便利和工作更有效率。 2 2 总体方案设计总体方案设计 2.12.1 电表抄表系统功能电表抄表系统功能介绍介绍 图 2.1 功能实现框图 抄表系统所具备的基本功能(见图 2.1),详细功能介绍如下: (1)

17、调制解调:通过 ST7540 芯片将单片机传过来的数据调制成 B-PSK 制式,并 传到电力载波模块中或将电力载波传过来的数据解调,解调后传到单片机。 (2)电力载波:首先电力载波是指以电力线为传输媒介载体,并在其上进行 数据信息传输的一种通信方式,这里我们通过 ST7540 调制后的数据放到电力线上 以及从电力线上接收数据信息通过 ST7540 进行解调。 (3)终端(电表): 将当前的数据保存到 EEPROM 中,便于单片机读数, 且掉电不会丢闪。 (4)抄表管理系统:安装在 PC 机上的管理软件,是抄表中心用来管理用户 电表数据和发送指令的统一管理平台,管理平台是一个比较复杂的系统,这里

18、使 用串口助手来代替,可以在串口助手写入发送数据以及显示接收到的数据。 2.22.2 电路模块设计电路模块设计 根据图 2-1 的功能框图,可制定出相应的电路模块(见图 2.2)。 图 2.2 电路模块设计框图 以上各个电路模块介绍如下: (1)5V 电源电路:为单片机、和 ST7540 提供所需的稳定 5V 工作电压。 (2)外部 8M 晶振电路:给单片机提供工作频率,频率越高执行速度越快, 但是这也是有上限的,当然也可以去掉这部分的电路,使用用单片机内部晶振。 (3)复位电路:产生 reset 信号,单片机收到该信号之后,重新初始化, 从头开始运行,相当 PC 机的的重启。 (4)单片机烧

19、录电路:将编译好的二进制程序通过烧录器写到单片机中。 (5)ST 单片机:运行烧录的程序,是整个系统的控制中心。 (6)电平转换电路:将单片机串口输出 CMOS/TTL 电平转为 R232 电平。 (7)PC 机: 通过串口与单片机连接,接爱单片机传过来的数据,并向单 片机发送指令。 (8)EEPROM 读写电路:单片机通过 i2C 协议将 eeprom 里电表数据读回来, 这里假设终端(电表)将数据存放在 eeprom 中。 2.32.3 电路所涉主要元器件的功能介绍电路所涉主要元器件的功能介绍 2.3.1 STM32F103C8T6 单片机芯片 一、STM32F103C8T6 介绍 电路中

20、 MCU 采用 ST(意法半导体)单片机芯片 STM32F103C8T6(见图 2.3)。 图 2.3 STM32F103C8T6 STM32F103C8T6【2】是 ST 公司 103 系列中的一个成员,使用 LQFP48 封装, 顾名思义只有 48 只 pin 脚,它的内核使用的是 ARM 的 Cortex-M3 内核,该内核 ARM 最新一代的嵌入式微处理器,它进一步降低了 MCU 的功耗和缩减的引脚数 目,同时提供选择低成本的平台,与此同时拥有了卓越的计算性能和先进的中断 系统响应。STM32F103C8T6 是 32 位的 ARM RISC 处理器,它提供高效的代码效 率,在 8 和

21、 16 位系统的存储空间上充分发挥了 ARM 内核的高性能。 STM32F103C8T6 最大工作频率 72MHz,片内集成了 20k SRAM , 比起 51 单片机速 度上快了很多,同时它具有 64K 片内 flash 非易失性存储器,一般将重要的数 据保存到 flash 中,就算突然断电,数据也不会丢失。STM32F103C8T6 具下以 下的标准功能:3 个 USART、 3 个 16 位定时器和 1 个高级定时器、2 个 SPI、2 个 I2C、1 个 USB、1 个 CAN、1 个 PWM 定时器、1 个 ADC。另外 STM32F103C8T6 支持三种低功耗模式: 如睡眠模式、

22、停机模式、待机模式。同时支持 DMA,允许 存储器到存储器、设备到存储器和存储器到设备的数据传输,通常运用于 SPI、I2C、USART 等。 2、STM32F103C8T6 各引脚介绍 图 2.4 STM32F103C8T6 引脚排列 STM32F103C8T6 引脚排列、芯片采用 LQFP48(见图 2.4) (1)VDD_x: 2.03.6V 直流电源。注:x 是指芯片多个 VDD 分别用 1,2,3.来区分。 (2)VSS_x:接地或者电源负极。 (3)VDDA:模拟电源,电压在 2.03.6V 之间,主要作用是为 ADC、复位 模块、 RC 振荡器和 PLL 的模拟部分提供供电。使用

23、 ADC 时, VDDA 不得小于 2.4V。 VDDA 和 VSSA 必须分别连接到 VDD 和 VSS。 (4)PD0_OSC_IN,PD1_OSC_OUT:即 OSC_IN 和 OSC_OUT 分别连接外部晶振和 输入端和输出端。当使用内部晶振,因为该 MCU 使用的是 48 脚,所以这两个 PIN 脚各连接 10K 电阻接地(此方法可提高 EMC 性能)或者分别重映射 OSC_IN 和 OSC_OUT 至 PD0 和 PD1,再配置 PD0 和 PD1 为推挽输出并输出0。此方法可以 减小功耗并节省 2 个外部电阻。 (5)NRST:异步复位脚,NRST 输入低电平的时,MCU 处于复

24、位状态,重设所 有的内部寄存器,及片内几十 KB 的 SRAM,NRST 从低电平变高时,PC 指针从 0 地址开始。 (6)BOOT0 和 PB2(BOOT1):启动运行模式,有三种:1.在片内的 flash 中运 行。2.在片内的 SRAM 中启动运行。3.外部 flash 启动运行。这里直接将 BOOT0 连接电阻接高,也就是在片内的 flash 中动启动运行。 (7)RST:复位脚,高电平有效。单片机上电时,晶振向 RST 脚连续提供 2 个机器周期高电平复位单片机。另外看门狗计时溢出后,连续向 RST 脚输出高 电平,复位单片机。 (8)PA2: 1.作为 USART2_TX 同步/

25、异步发送器,接口的通信速率可达 2.25 兆位/秒。 USART 接口具有硬件的 CTS 和 RTS 信号管理、支持 IrDA SIR ENDEC 传输编解码、兼容 ISO7816 的智能卡并提供 LIN 主/从功能。2.作为 ADC12_IN2,表示表示这个引脚可以是 ADC1_IN2 或 ADC2_IN2 的模数转换器 3. 它也可以作为 TIM2_CH3,定时器 2 的第三通道。 (9)PA3: 1.作为 USART2_RX 同步/异步收接器,与 PA2 一起组合成完整的 一对串口通信。2.作为 ADC12_IN3,表示表示这个引脚可以是 ADC1_IN3 或 ADC2_IN3 的模数转

26、换器 3.它也可以作为 TIM2_CH4,定时器 2 的第四通道。 (10)PA9:同 PA2,不同的地方是,它作为 USART1_TX 通信速率达到 4.5 兆 位,但不具有 ADC 功能。 (11)PA10:同 PA3 一样,与 PA9 一样不具有 ADC 功能。 (12)PB6:1.I2C1_SCL 作为 I2C 的时钟控制线。2.TIM4_CH1 作为定时器 4 的第一通道。 (13)PB7: I2C1_SDA 可作为 I2C 的数据线。TIM4_CH2 作为定时器 4 的第 二通道。 (14)PA13: 带上拉的输入 1.JTMS 作为 JTAG 烧录数据输入脚,配合 JTCK 可实

27、现调式,程序烧录到单片机。2.SWDIO 功能和 JTMS 相同,它主要用于 SWD 模式下。SWD 模式比 JTAG 在高速模式下面更加可靠。 在大数据量的情况 下面 JTAG 下载程序会失败, 但是 SWD 发生的几率会小很多。所以一般建义用 SWD 模式。 (15)PA14:带下拉的输入 1.JTCK 作为 JTAG 的时钟输入线,需要和 JTMS 一起使用 2.SWCLK 作为 SWD 模式下的时钟输入线,同样需要配置 SWDIO 才能使 用。 (16)Pxx:默认作为普通的 I/O,电平为 CMOS,但兼容 TTL 电平。注:xx 是指 AE。 2.3.2 ST7540 电力线载波

28、modem 芯片的使用 ST7540【3】由意法半导体简称 ST,设计生产的新型电力线通信收发芯片,它 向上兼容了上一代的芯片 ST7538,并且它支持 EHS 和 KONNEX(EN50090)等多种独 有或开放的 FSK 调制技术通信协议。ST7540 主要应用于家庭和工业等领域。例 如供电公司集中式远程智能抄表业务以及家电控制等。 该芯片内包括输出电流 和电压控制回路,用来保证数据能够安全和可靠地传输。同时 ST7540 芯片内部 集成了功率放大器和可选的多种附加功能,功能非常强大。其实物图见图 2.5。 图 2.5 ST7540 实物图 1、引脚说明(见图 2.6 和表格 2.1):

29、图 2.6 ST7540 引脚排列 表 2.1 引脚说明 序 号 名称 类型描述 1CD_PD 数字输出载波信号侦头检测输出、 1 没有载波信号或者侦头检测输 出 0 有载波信号或者侦头检测输出 2REG_DATA内部断开下的数字输入1 为控制寄存器 0 为主控制器 3GND 供给数字接地 4RxD 数字输出RX 数据输出 5RxTx内部打开时的数字输出1 为 RX session 0DX session 6TX内部断开下的数字输入TX 数据输出 7BU/THERM 数字输出1 为信号编程 0 在 TX 模式下没有信号编程 8CLR/T 数字输出同步主存取时钟或者控制寄存器 时钟 9VDD 电

30、源供给数字供给电压或者 3.3V 电压控制 输出 10MCLK 数字输出主时钟输出 11RSTO 数字输出电压打开或者 检测器复位输出 12UART/SPI内部断开下的数字输入接口类型 串行外围接口 0 通用异步接收器/发送器接口 13WD内部断开下的数字输入检测器输入。内部检测计数器在 下界电压线是清零 14PA-IN 模拟输入电力线放大器反相输出 15PA-OUT 电压输出电力线放大器输出 16VSS 供给电压模拟接地 17VCC 供给电压源 18PA_IN 模拟输入电力线放大器无反相输出 19TX_OUT 模拟输出小信号模拟传送输出 20SVSS 模拟输出模拟信号接地 21X1 模拟输出

31、晶体震荡器输出 22X2 模拟输入晶体震荡器输入或者内部时钟输 入 23VSENSE 24CL电流限制反馈在 CL 和 SV 之间的 电阻来设置当前的电流值在这个 引脚上为综合 80pf 滤波输入电容 25RX_IN 模拟输入模拟输入接收端 26VDC5V 电压调节器 27TEST1测试投入时必须接地 28TEST2 模拟输入测试投入时必须接 SV 端 二、ST7540 的特征: (1)采用单电源:工作在 7.512.5V,内部集成线路驱动器和 5V,3.3V 两 个线性调整器,电流高达 50mA,数字电压为 3.3V 或 5.0V。 (2)ST7540 具有非常低的功耗,静态电流 5mA。

32、(3)控制方面:ST7540 芯片工作通过内部寄存器控制和同步串行接口来 编 程。 (4)ST7540 带有看门狗定时器、时钟输出、输出电压和电流控制、载波 或前同步检测、可暂停工作和使用等功能。 (5)除了(4)提到的功能之外,ST7540 还带有 8 个可编程发送频率,可编 程 波特速率最高为 4800B/s,接收灵敏度可达 500V(rms),同时具有 UART/SPI 主 接 口,并且向下兼容前期的电力线收发芯片 ST7538 和 ST7537,大大方便了用户的 使用和升级。 (6)ST7540 内置了很多模块,如:自动电平控制、电压及电流控制模块、 振荡器模块、串行接口模块、滤波器、

33、FSK 调制解调模块等等。 三、应用范围: 电力抄表,城市路灯控制、工业现场数据传输、断缆监测,智能家电控制, 楼宇智能灯光控制,消防及保安系统,舞台灯光音响控制,家电控制器等等。 四、工作原理: 1.与主机相关 表 2.2 串口交换数据 REG_DATARxTx 数据传送 00 数据接收 01 控制寄存器读出 11 控制寄存器写入 10 1.1 ST7540 与主机之间主要是通过串口来交换数据。REG_DATA 和 RxTx 管 脚主要控制管理数据的传输,RxD,TxD 和 CLR/T 管脚传输数据。ST7540 有四种 工作模式: (1)数据接收 (2)数据传送 (3)控制寄存器读 (4)

34、控制寄存器写 1.2 ST7540 与主机的两种通信接口方式【6】 SPI:管脚 UART/SPI 为低电平(0)时,RX 和 DX 被选作 SPI 类型,工作于异步 工作模式。 UART:管脚 UART/SPI 高电平(1)时,RX 和 DX 被选作 UART 类型,主机和 ST7540 工作于同步工作模式。 另外当管脚 REG_DATA=0 和管脚 RXTX=1 时,ST7540 处于接收工作模式。当 没有数据传输时,管脚 RxD 处于空闲状态。RxD 当前值取决于管脚 UART/SPI,UART/SPI 为”0”,它为”0”;UART/SPI 为”1”,它为”1”。最 后 UART 接口

35、允许被连接到一个 UART 兼容设备而 SPI 接口允许被连接到一个 SPI 兼容设备。 1.3 异步工作模式: 在异步模式下,数据交换没有任何数据时钟参考。主机控制器在接收模式必 须恢复时钟参考和在传输模式控制比特时间。如果 RxTx 线设置为“1”和 REG_DATA = 0 (数据接收),ST7540 进入空闲状态。在 TCC 时间后,芯片将 接收到的数据到 RxD 接收线上。如果 RxTx 线设置为“0”和 REG_DATA = 0 (数据),ST7540 进入空闲状态,传输电路开启,TCC 时间后,芯片将 TxD 线上的 数据传送出去。连接图(见图 2.7): 图 2.7 异步工作电

36、路图 1.4 同步工作模式: 在同步模式 ST7540 的一直是通信主体。并通过 CLR / T 线的提供参考时钟。 当 ST7540 的处于接收模式有内部的 PLL 恢复的时钟参考。在 CLR /T 上升沿时, RXD 处于稳定状态。 当 ST7540 处于传送方式,并且是内部产生参考时钟,在 CLR /T 是上升沿时 接收 TXD 线上的数据。如果 RxTx=“1”和 reg_data =“0”(接收数据), ST7540 的进入空闲状态和 CLR / T 线置于低电平。在 Tcc 时间后,通过芯片接 收到 RXD 线上的数据。如果 RxTx 设置为“0”和 reg_data =“0”(数

37、据传输) ,ST7540 的进入空闲状态和传输线路接通。在 Tcc 时间后,将 TXD 线上数据传 送出去。(见图 2.8) 图 2.8 同步工作电路图 1.5 接收模式 当控制端口 RxTx=1 且 REG_DATA=0 时,ST7540 芯片处于接收状态。为了保 证输入信号在比较低信噪的情况下,仍然拥有很宽的动态范围,信号经滤波后直 接从 RX_IN 端口读入。这个模块中要对输入信号进行滤波,首先需要设置一个中 心频率并使用选中的信道频率设定的窄带滤波器。ST7540 FSK【13】解调过程:首 先变换信号的频率就是把输入的信号和芯片内置的正弦波发生器产生的正弦波 形的频率进行混合,然后将

38、混合的信号送入滤波器进行滤波,最后一步就是进 行解调。以上的整个过程一共进行了三次滤波,这样做的目的是更好的减小噪 声的干扰。另外 ST7540 芯片还有一点优势:就是芯片开始接受数据时,这时 RxTx=1,芯片内信号发送模块的电路全部关闭,降低芯片的功耗和节省电能,避 免电能浪费。内部图(见图 2.9): 图 2.9 芯片接收模式内部图 1.6 传输模式 当控制端口RxTx=0且REG_DATA=0时,ST7540芯片处于发送状态。与接收模 式不一样的是RxTx=0,与接收模式一样,为了减小芯片的功耗,芯片内将接受 模块的电路包括其外界电路关闭,与传输相关的芯片内部FSK调制部分电路找开,

39、使它处于工作状态。芯片内有两种信号传输模式可以由内部开关控制选择: (1)同步传输: 在CLR/T时钟信号上升沿时,从TXD端口读入数据并送至 FSK调制器,发送时序并不是由主机控件,而是根据芯片内部波特率发送时序控 制。 异步传输: 忽略CLK/T端的时序信号, TXD引脚将数据直接发送到FSK调制器。 并且频率精度与外部的晶体频率在传输时始终保持相同的,发送时序由主机来 管理。内部图(见图2.10): 图 2.10 传输模式内部图 五、工作时序图: 1.同步工作模式 数据接收:RxTx=1 和 REG_DATA=0,CLR/T 高电平变为低电平(下降沿), ST7540 进入空闲状态,Tc

40、c 时间后,调制解调器开始将解调后的数据放到 RxD 线上。 数据发送:RxTx=0 和 REG_DATA=0,CLR/T 高电平变为低电平(下降沿), ST7540 进入空闲状态,Tcc 时间后,调制解调器开始将 TxDA 线上的数据调制之 后放到电力线上。通信时序图(见图 2.11、2.12): 接收和发送数据/恢复的时钟定时: 图 2.11 同步时序图-1 数据接收- 数据传输-数据接收: 图 2.12 同步时序图-2 2.控制寄存器访问时序图(见图 2.13、2.14): 控制寄存器访问只能使用同步方式,其中 RxD,TxD 与 CLR/T 及 REG_DATA 与 主机链接。 数据发

41、送:RxTx=0 和 REG_DATA=0,TxD 数据首先发送到控制寄存器最高有 效位即 MSB,CLR/T 上升沿时采样 TxD,同时 REG_DATA 下降沿时更新控制寄存器 的最高有效位,最大不能超过 24bits,如果超过,只取最后 24bits; 数据接收:RxTx=1 和 REG_DATA=1,CLR/T 上升时,控制寄存将最高有效位 MSB 放到 RxD 线上,反复运行后,直到接收到控制器寄存器所有的内容。 数据接收- 控制寄存器读-数据接收: 图 2.13 寄存器时序图-1 数据接收- 控制寄存器写-数据接收: 图 2.14 寄存器时序图-2 2.3.3 MAX232 电平转

42、换芯片 MAX232 芯片是美信公司专门为电脑的 RS-232 标准串口设计的单电源电平 转换芯片,使用+5v 单电源供电。 图 2.15 MAX232 实物图 一、引脚介绍(见图 2.16): 图 2.16 MAX232 芯片引脚排列 第一部分是电荷泵电路。由 1、2、3、4、5、6 脚和 4 只电容构成。功能是 产生+12v 和-12v 两个电源,提供给 RS-232 串口电平的需要。 第二部分是数据转换通道。由 7、8、9、10、11、12、13、14 脚构成两个 数据通道。其中 13 脚(R1IN)、12 脚(R1OUT)、11 脚(T1IN)、14 脚 (T1OUT)为第一数据通道。

43、8 脚(R2IN)、9 脚(R2OUT)、10 脚(T2IN)、7 脚(T2OUT)为第二数据通道。TTL/CMOS 数据从 T1IN、T2IN 输入转换成 RS-232 数据从 T1OUT、T2OUT 送到电脑 DB9 插头;DB9 插头的 RS-232 数据从 R1IN、R2IN 输入转换成 TTL/CMOS 数据后从 R1OUT、R2OUT 输出。 第三部分是供电。15 脚 GND、16 脚 VCC(+5v)。 二、主要特点: (1)符合所有的 RS-232C 技术标准 (2)只需要单一 +5V 电源供电。 (3)片载电荷泵具有升压、电压极性反转能力,能够产生+10V 和-10V 电压

44、V+、V- (4)功耗低,典型供电电流 5mA (5)内部集成 2 个 RS-232C 驱动器。 (6)内部集成两个 RS-232C 接收器。 三、主要运用: 用于单片机和 PC 机通过串口进行通信,虽然单片机有串行通信的功能,但 单片机提供的信号电平和 RS232 的标准不一样,因此要通过 max232 这种类似的 芯片进行电平转换。 3 3 硬件电路的设计硬件电路的设计 3.13.1 电路设计软件电路设计软件 CadenceCadence 介绍介绍 Cadence 是一个大型的 EDA 软件,它几乎可以完成电子设计的方方面面, 包括 ASIC 设计、FPGA 设计和 PCB 板设计。Cad

45、ence 在仿真、电路图设计、自动 布局布线、版图设计及验证等方面有着绝对的优势。Cadence 包含的工具较多 几乎包括了 EDA 设计的方方面面。下面主要介绍其产品线的范围。我们这里主 要用到 cadence 电路设计软件 orcad capture cis(见图 3.1)。 图 3.1 Cadence 软件界面 3.23.2 整体电路原理图整体电路原理图 Orcad capture cis 软件设计好的电路原理图见附录 1。 3.33.3 各个电路模块设计解析各个电路模块设计解析 3.3.1 晶振电路 晶振电路的作用: 为单片机提供工作时钟信号(外部)。为了使各部分保持 同步,通常整个系

46、统都是共用一个晶振。但是有些通讯系统的基频和射频使用 了不一样的晶振,可以通过电子调率的方法保持同步。晶振电路一般要和锁相 环电路一起配合使用,给系统提供所需的工作时钟频率。如果不同子系统需要 不同频率的时钟信号,可以用用同一个晶振相连与不同锁相环来实现。这里我 们使用了两个独立的晶振电路: (1)单片机 STM32F103C8T6 晶振电路连接 OSC_IN 和 OSC_OUT 两个脚,提供 8MHz 的工作频率图(见图 3.2): 图 3.2 晶振电路 (2)ST7540 晶振电路连接 OSC_IN 和 OSC_OUT 两个脚,提供 8MHz 的工作频 率图(见图 3.3): 图 3.3

47、晶振电路 其中如图 3.2 单片机 STM32F103C8T6 晶振电路多一个电阻,这个就是反馈 电阻,是为了使反相器输入端的工作点电压稳定在 VDD/2,当振荡信号反馈在 输入端时,可以使得反相器工作在适当的工作范围。如果将这个电阻去掉,振 荡电路仍能正常工作。但示波器上显示振荡波形和原来的不一样了,这就有可 能会造成振荡电路由于工作点不合适停振不工作。所以一般情况下不可以省略 此电阻。该电阻主要是使逻辑反相器的器件工作在线性区获得增益, 因为在饱 和区域是没有增益的, 这就意味着无法振荡的。如果使用芯片内部的反相器来 作振荡,那么必须外接电阻,如果是 CMOS 可以用 1M 以上,相对于

48、CMOS,TTL 比较 复杂,这就需要视不同类型(S,LS.)而决定。但是如果芯片已经指定的晶振引 脚,象在某一些微处理器中, 通常是不需要添加的, 因为处理器内部已经集成了。 3.3.2 复位电路 复位电路(见图 3.4),就是利用它把电路恢复到起始状态。就像计算器 reboot 按钮的作用一样,以便回到开机前状态,重新进行运行。 STM32F103C8T6 单片机复位信号是高电平(1)有效,通过 nRST 管脚输入。手动 按 SW3 将产生一个复位信号,单片机”重启”了。 图 3.4 复位电路 3.3.3 单片机启动模式选择电路 通过给单片机 STM32F103C8T6 的 BOOT1 和

49、 BOOT2 管脚置高低电平来,控制 自举的模式(如图 3.5)。有三种模式可以选择: (1)当 BOOT1 = x 和 BOOT0 = 0,从芯片内置的 Flash 启动。 (2)当 BOOT1 = 0 和 BOOT0 = 1,从芯片内置的 RAM 区,是指内存启动。 (3)当 BOOT1 = 1 和 BOOT0 = 1,芯片内部一块特定的区域(系统存储器), 芯片出厂时厂家默认在某个区域预置了一段 Bootloader 程序,就是通常说的 ISP 程序。这个区域也就是 ROM 区,芯片出厂后不可以再作修改或擦除。单片 机从这个区域启动,也即是运行 Bootloader 程序。 图 3.5

50、启动模式选择电路图 3.3.4 TTL/RS232 电平转换电路 TTL 电平逻辑 1(高电平通常2.4V)一般为 3.3V 或者 5V,逻辑 0(低电平 0.4V)一般为 0V,不同的芯片值有所不同。RS232 逻辑 1=-3V-15V,逻辑 0=+3+15V。如果不加转换芯片,由于电平的不同会烧坏接口芯片。在这里我们 选择了一款比较常的转换芯片 MAX232,MAX232 通过 T2IN 和 R2OUT 这路管脚连 接单片机的 PA2,PA3 口,T2OUT 和 R2IN 与 PC 串口链接,实现与单片机和 PC 之间的正常的串口通信。具体电路图见图 3.6。 图 3.6 电平转换电路 3

51、.3.5 单片机代码烧录电路 这里只使用到单片机 JTCK 和 JTMS 以及 nRST 接口,只要和 ST-LINK 烧录器 对应的管脚连接一起就可以实现程序的下载和单步调试,烧录时可以选择 JTAG 或者 SWD 模式。具体电路图见图 3.7: 图 3.7 烧录电路 3.3.6 I2C 访问 EEPROM 电路 由于条件的限制和客观因素,这里我们假设电表的实时数据存放在一块 EEPROM 的芯片上,我们只需要读取 EEPROM 芯片的数据就能读取电表的读数。 同时我们也暂不考虑一些复杂的细节,例如电表的读数可不可以手工修改等问 题。模拟测试时,只需要将数据写到 EEPROM 中,再读回来。

52、连线比较简单, STM32F103C8T6 单片机有一路集成的 I2C 接口,只需要将电路图中 SCL 和 SDA 连接并上拉就可以了【4】。具体的电路图见图 3.8: 图 3.8 烧录电路 3.3.7 发送有源滤波电路 系统中的发送有源滤波电路(见图 3.9)。图中,PA 是 ST7540 内部集成的 功率放大器利用它可构成三阶发送有源滤波电路。其中包括由一个 C 低通滤 波电路和一个二阶 SallenKey 单元。C18 用于滤除低频信号;R22、R23 则可 将信号的直流分量抬高,这样就可以避免信号失真。)/( 232223 RRVR DC 二阶 SallenKey 单元的传输函数为:

53、(3.1) 1 )( 2 2 0 Q SS A SA c c 同时: , (3.2) 17 18 0 1 R R A , (3.3) 16142119 1 CCRR c (3.4) )1 ( 0142114191621 16142119 ACRCRCR CCRR Q 这个单元的截住频率计算公式为: (3.5) 14142119 2 1 CCRR f 具体的电路图如下: 图 3.9 有源滤波电路图 3.3.8 发送无源滤波电路 当数据传输系统与电力线进行耦合时,除了需要有源滤波电路以外。还需 一些无源器件来组成发送无源滤波电路。图 4 所示是一种串联谐振电路,该电 路由解藕电容 C9、线性变压器

54、、电感 L1 和电容 C7 和 C8 等组成。该串联谐振 电路的中心频率为: (3.6) )(2 1 871 CCL fc 在设计该电路时 ,应注意以下几点: (1) 首先要正确地选择 L1,以保证饱和电流(大于 1 A )和串联等效电阻 (d_card = CARD_ID ) crcsum = pFrame-sum; send_frame_sum(pFrame); if (pFrame-sum = crcsum ) handle_cmd(pFrame); u8 Modem_Receive(u8 *buf) u8 pRxBuffer260; u8 ret = 0; if( xSerialGet

55、Char( pRxBuffer ) ) if ( buf ) memcpy(buf, pRxBuffer+1, pRxBuffer0); ret = N_buf_len; return ret; 4.1.4 解析数据帧 这里 1 号板卡是主板卡,其他都是从板卡。如果 1 号板卡收到数据,那么 该数据帧就是目标板卡发过来的电表数据,那么直接将数据帧发送到 PC。如果 是其板卡收到数据帧且目标卡是自己,那么就去读电表数据,并发送到 ST7540。 void handle_cmd(SEND_FRAME_T *pFrame) switch (pFrame-cmd) case DT_PACK: if (

56、 0 x01 = pFrame-d_card ) Send_To_PC(u8 *)pFrame,sizeof(SEND_FRAME_T); /是 卡号 1,发送数据帧到 PC else Get_Electric_Meter();/获取电表数据 Send_Data_Pack(); /发送电表数据到 ST7540 break; 4.24.2 单片机与单片机与 PCPC 之间的通信之间的通信 流程图(见图 4.2): 图 4.2 通信流程图 为了方便 PC 与单片机之间的通信,这里我们自定义一个通信帧,格式如下: 表 4.2 帧格式 字段名字节数数值 报头 2ByteFDH,FEH 包类型 1Byt

57、e 0 x01-设置包,0 x02 读表请求包 数据可变包类型=0 x01,数值为 ST7540 控制寄存器的值(3 个字节),包类型=0 x02,数值为目标卡号(1 个字 节) 包尾 1Byte0 xED 4.2.1 读数据【8】 void Receive_From_PC(void) if( USART_GetITStatus( USART2, USART_IT_RXNE ) = SET ) USART_ClearITPendingBit(USART2, USART_IT_RXNE); u8Data = USART_ReceiveData(USART2); APP_USARTRxBuffer

58、u8FrameIndex = u8Data; /* blPreFrame is FALSE, a pre-frame byte not received */ if (!blPreFrame) if (u8Data = PRE_FRAME_CHAR) /Is pre-frame byte 0 xFE blPreFrame = TRUE; return; if (!blFrame) if (u8Data = PRE_FRAME_CHAR) return; else if (u8Data = FRAME_START_CHAR) blFrame = TRUE; return; else blPreF

59、rame = FALSE; return; if (u8Data != FRAME_END_CHAR) APP_USARTRxBufferu8FrameIndex = u8Data; u8FrameIndex+; return; if(u8FrameIndex4) return; else uFramelen = u8FrameIndex; ResetReceive_PC(); blFrameReceived = TRUE; return; 4.2.2 写数据【9】 uint8_t Send_To_PC( u8* pBuff,u8 uLen ) uint8_t i, ret = FALSE;

60、static u32 timeout; USART_ClearFlag(USART2, USART_FLAG_TC); USART_ITConfig( USART2, USART_IT_RXNE, DISABLE ); timeout = 0 xFFFFFF; for ( i=0; iuLen; i+ ) USART_SendData(USART2, pBuffi); /* Loop until the end of transmission */ while ( (USART_GetFlagStatus(USART2, USART_FLAG_TC) = RESET) if ( timeout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论