1.这次读到了《组态王与单片机多机串口通信的设计》
本文讨论了组态王专门提供的一种与单片机多机串口通信方法,提出了程序的设计流程与思路。
组态王提供了通过 PC 机与单片机串口进行十六进制数据通讯的驱动,而驱动中已经规定好其通讯协议。
由于在分布式系统中 PC 机与各单片机的分布不集中,不能利用RS-232通讯传输,只能改用RS-485。RS-485采用差分式传输信号,最大传输距离为1 219 m,最 大 传 输 速 率 为10 Mb/s,对 同 时 出 现 的 两条信号线A、B的干扰有较强的抑制力。当两条线绞在一起时,被通信各种分布参数耦合过来的干扰信号可平均地分配到这两条线上,因此对RS-485的差分式传输线路而言,用双绞线可获得较强的抗干扰能力。RS-485采用二线与四线平衡传输方式,二线制可实现真正的多点双向通信,但需要在传输线上接电阻(约120Ω)。
由于
80C51
系列单片机
STC89C52
串行接口的
TTL
电气特性与
RS
-
485
电气特性不相符
,
STC89C52
不能与
RS
-
485
直接连接
,
需要电气转换 ,采用了MAX485.
下面是单片机和组太王的通讯程序流程:
文章中还有
数据传输格式与协议说明,详细的叙述了单片机和组态王请求、应答的格式。
2.这次读到了《基于组态王和STM32 的停车场刷卡管理系统设计》
主要研究内容是在上位机电脑中通过由组态王编写的监控软件对下位机进行监控和指令操作;而下位机是由 STM32及电源模块和时钟模块搭建而成的主控板,它主要负责对终端刷卡进行控制以及与上位机个人 PC进行通信;终端刷卡模块有RC522、射频识别天线以及辅助电路组成。
本工程中软件系统设计就是通过将读写卡程序移植到ModbusRTU 中来实现电脑上位机与刷卡终端的通信的。将 ModbusRTU
中的保持寄存器数组中的第二个数据与读写卡命令变量关联, 然后上位机将读卡写指令写到持寄存器中,这样就是实现了读写 卡动作 。下位机判断为读卡操作时,执行相应的函数将卡中的数据传给只能进行读操作的输入寄存器, 然后电脑上位机再读输入寄存器, 这样就可以将卡中存储的数据传给上位机;进行写卡操作时,首先上位机将要写入到卡内的数据写入到保持寄存器数组第三个往后数组,然后当下位机判断为写卡命令时,调用写卡函数将数据写入 IC 卡中。
中的保持寄存器数组中的第二个数据与读写卡命令变量关联, 然后上位机将读卡写指令写到持寄存器中,这样就是实现了读写 卡动作 。下位机判断为读卡操作时,执行相应的函数将卡中的数据传给只能进行读操作的输入寄存器, 然后电脑上位机再读输入寄存器, 这样就可以将卡中存储的数据传给上位机;进行写卡操作时,首先上位机将要写入到卡内的数据写入到保持寄存器数组第三个往后数组,然后当下位机判断为写卡命令时,调用写卡函数将数据写入 IC 卡中。
终端刷卡模块RC522对IC卡读写操作的软件操作 :在程序一开始,STM32 主控芯片 对 RC522 进 行 程 序 初 始 化 配
置, 各寄存器配置好后,RC522 就可以接收STM32发出的操作命令,实现与IC卡的通信了。RC522可以接收相应的指令进行读 写操作,但是这必须进过一系列复杂的过程才能完成。主要包括:①寻卡,②防碰撞,③选卡,④密码验证,⑤读数或者写数据块。
下位机 STM32 与组态王的通信:下位机STM32是通ModbusRTU 将刷卡信息传给组态王的。 首先,在下位机程序初始化配置好设备地址、波特率以及校验方式等, 同时在组态王上建立设备时选择PLC\ 莫 迪 康\ModbusRTU\COM, 参数的配置要 与下位机的保持一致 。ModbusRTU协议是基于消息队列的协议, 协议通过检测相应的消息来完成对应功能。程序初始化和运行流程一般如下:①系统复位,完成物理层初始化,主要包括通信参数的设定和寄存器的设定;②调用地址配对函数,检测地址是否配对;③使能协议栈,等待串口中断;④接收串口数据;⑤调用事件检测函数检测事件;⑥返回检测到事件类型,并根据相应的事件代码查找处理该事件的函数指针来处理该事件; ⑦将处理结果以及要传输的数据再以中断的方式通过串口传送给组态王。
置, 各寄存器配置好后,RC522 就可以接收STM32发出的操作命令,实现与IC卡的通信了。RC522可以接收相应的指令进行读 写操作,但是这必须进过一系列复杂的过程才能完成。主要包括:①寻卡,②防碰撞,③选卡,④密码验证,⑤读数或者写数据块。
下位机 STM32 与组态王的通信:下位机STM32是通ModbusRTU 将刷卡信息传给组态王的。 首先,在下位机程序初始化配置好设备地址、波特率以及校验方式等, 同时在组态王上建立设备时选择PLC\ 莫 迪 康\ModbusRTU\COM, 参数的配置要 与下位机的保持一致 。ModbusRTU协议是基于消息队列的协议, 协议通过检测相应的消息来完成对应功能。程序初始化和运行流程一般如下:①系统复位,完成物理层初始化,主要包括通信参数的设定和寄存器的设定;②调用地址配对函数,检测地址是否配对;③使能协议栈,等待串口中断;④接收串口数据;⑤调用事件检测函数检测事件;⑥返回检测到事件类型,并根据相应的事件代码查找处理该事件的函数指针来处理该事件; ⑦将处理结果以及要传输的数据再以中断的方式通过串口传送给组态王。