实时数据串行通信协议设计
图2
SCPBus 协议最小通信单元
linux 操作系统 在与 linux 操作系统的交互层中, 读取主站采集上来的从站信息 ( 从站的属性, 比如是 实时数据站还是非实时数据站等 ) , 读取从站上传上 写入需要发送到从站的数据。 来的数据, Bus 协议实现层中, 主站 SCP主要完成以下任 务: ①从站设备的设备属性的扫描; ② 实时数据通信 与非实时数据通信的调度; ③ 实时数据通信强制定 时通信; ④非实时数据通信轮询通信; ⑤ 总线出错处 理机制的实现; ⑥与数据发送与接收层交互; ⑦ 将数 据写入 linux 操作系统交互层; ⑧从 linux 操作系统交 互层读取数据。 Bus 协 数据发送与接收层中, 主要完成从 SCP议实现层中接受命令和数据, 对数据进行组帧, 加入 CRC16 校验值, 对每一个字节加入起始位, 奇偶校验 位, 停止位后, 发送到总线上。 SCPBus 协议从站协议在层次结构上分为 ① 交 互层; ②命令响应层; ③ 数据发送与接收层。 交互层 主要任务是将收到的数据存入双口 Ram, 并且在从 站数据得到更新后, 给出一个脉冲信号, 表示数据更 新一次。命令响应层根据主站下发的命令, 做出相 应响应。从站数据发送与接收层跟主站的数据发送 与接收层行使一样功能, 而且代码也是一致的。
3
3. 1
SCPBus 通信协议设计
SCPBus 通信协议框架设计
图1
SCPBus 协议物理结构
SCPBus 协议是基于 FPGA 实现的, 主要工作是 Bus 协议 IP 核, 设计 SCP在设计协议 IP 核时, 采用主 Bus 协议 从分开, 自上而下的层次化设计方案。SCP的通信模式是: 所有通信都是由主站发起, 从站被动响 应。所以主站与从站的协议 IP 核是不相同的。把主 从分开来设计, 设计思路更加清晰。而在分别设计主 从站协议时, 运用自上而下分层设计的方案, 每个层次 完成独立的工作, 各层之间的交互都是通过访问寄存 器的方式进行, 这样就划清了层次之间的界限。这对 协议的后期维护和修改是有重要意义的。 SCPBus 协议主站协议在层次结构上分为 1 : 与 linux 操作系统的交互层; 2 : SCPBus 协议实现层; 3 : 数据发送与接收层。这三层的关系如图 3 所示。
图3
SCPBus 协议主站层次结构
2
SCPBus 与 UART 的兼容性
在嵌入式数控系统中, 有 许 多 设 备, 诸 如 I / O, AD / DA 设备是使用 MCU 作为控制器的, 为了兼容此 SCPBus 采用异步串行全双工通信模式, 类设备, 在 SCPBus , 设计 协议时 数据传输的最小单元是一个 字节, 每个字节设置一个起始位 ( 图 2 中的第 1 位 ) , 8 个有效数据位 ( 图 2 中的第 2 ~ 9 位 ) , 一个奇偶校 验位( 图 2 中的第 10 位 ) , 一个停止位 ( 图 2 中的第 11 位 ) 。 这 样 设 计 就 能 保 证 普 通 MCU 能 够 作 为 SCPBus 协议的从站, 通过 MCU 的串口挂到总线上。
2014 年 1 月
李
松, 等: 实时数据串行通信协议设计
· 97·
Bus 协议采 协议采用多从站串行通信的结构。 SCP[3 ] 用星形连接 , 设计从 因为考虑到数控系统的需求, 站负载量为 15 个。 如图 1 所示, 主站和每个从站都 Altera FPGA 包含有一个 公司的 和高速 485 芯片, FPGA 用于 SCPBus 协议的实现和与 linux 驱动层交 互, 高速 485 芯片用于接收和发送差分信号。
0
引言
从结构上来讲, 分为非总线式和 在数控系统中, I / O 数据, DA / AD 数 总线式, 非总线式是将轴数据, 据, 编码器反馈数据等直接通过直连的方式接入数 控核心板, 这样会导致接线复杂而且凌乱, 往往数控 系统对线缆要求较高, 需要加入屏蔽层和磁环等防 , 干扰措施 这些线缆价格昂贵, 做线工作量大, 接线 工作量也大。 如果采用总线式结构, 将所有数据都 通过总线进行交互, 就能避免传统非总线结构带来 的不便。针对总线式数控系统, 现有的总线协议主 BUS , CAN, 要有: 华中数控开发的 NCUC工业以太网 Modicon 开 发 的 Modbus[1] 等。 现场 总 线 EtherCAT, 这些总线协议虽然功能齐全而且强大, 实时性很高, 误码 率 很 低, 但 是 都 较 为 复 杂, 资 源 消 耗 量 大, 在
1
SCPBus 通信物理结构
在嵌入式数控系统中, 因为各个设备与主站之 Bus 间的数据传输是一点对多 点 的 形 式, 因 此 SCP-
收稿日期: 2013 - 05 - 14 ; 修回日期: 2013 - 06 - 20 * 基金项目: “高 档 数 控 机 床 与 基 础 制 造 装 备 ” 科技重大专项 科 技 重 大 专 项 ( 2012ZX04001012) ; “高 档 数 控 机 床 与 基 础 制 造 装 备 ” ( 2012ZX04001041 ) ; 高等学校博士学科点专项科研基金( 新教师基金课题) ( 20090142120035 ) ( E - mail ) 374985119 @ qq. 华中科技大学硕士研究生, 主要研究方向为数控技术、 嵌入式系统, 作者简介: 李松( 1986 —) , 男, 四川乐山人, com。
实时数据串行通信协议设计
李 宋 松, 唐小琦, 宝
( 华中科技大学 机械科学与工程学院 , 武汉 430074 )
*
源自文库
摘要: 文章结合嵌入式数控系统的需求 , 设计一种兼容实时数据和非实时数据传输的高速 、 高可靠性 — —SCPBus, 解决了嵌入式数控 在基于 FPGA 和高速 RS485 接口芯片的硬件平台上, 串行通信协议— 系统数据的实时性问题、 异步通信中接收方与发送方波特率时钟相位对准问题、 工业现场应用的干 SCPBus 串行通信协议 能够满足 嵌入式数控系统与 外部 设 备 扰问题等。试验和现场使用结果表明, 之间通信的要求。 关键词: 实时; FPGA; 串行通信 中图分类号: TH165 ; TG65 文献标识码: A The Design of Real Time Serial Communication Protocol LI Song,TANG Xiaoqi,SONG Bao ( School of Mechanical Science and Engineering ,HuaZhong University of Science and Technology ,Wuhan 430074 ,China) Abstract : Considering the requirement of the Embedded NC System ,this paper designs a high speed and reliable serial communication protocolSCPBus,w hich is compatible w ith the transmission of real time data and nonreal time data. Based on hardw are platform composed of PFGA and high speed RS485 chip ,this paper solves the problem of data’ s instantaneity in Embedded NC System ,and the problem of baud rate clock’ s phase alignment betw een the receiver and the sender in asynchronous communication , the problem of disturbance in industrial field, and etc. The result of experiment and field application indicates that SCPBus can meet the demands of communication betw een the Embedded NC System and peripheral equipment. Key words: embedded NC System ; real time; FPGA ; serial communication
第1 期 2014 年 1 月
组合机床与自动化加工技术 Modular Machine Tool & Automatic Manufacturing Technique
DOI: 10. 13462 / j. cnki. mmtamt. 2014. 01. 027
No. 1 Jan. 2014
文章编号: 1001 - 2265 ( 2014 ) 01 - 0096 - 04
linux 下的驱动复杂, 如果应用在嵌入式数控系统中 不经济。 针对嵌入式数控系统, 本文设计了一套简单的, 满足实时数据与非实时数据的传输要求, 兼容一般 MCU 的 UART 或 者 USART 的 串 行 通 信 协 议— — — SCP-Bus( Serial Communication Protocol bus) 。在基于 [2 ] 现场可编程逻辑阵列 ( FPGA ) 和 RS485 接口芯片 硬件平台上, 实现了数控系统到伺服驱动器、 远程 I / O 模块、 MCP 键盘之间的数据通信, 解决了资源消耗 大, 驱动复杂的问题, 同时轴数据的实时性与误码率 也能满足嵌入式数控系统的要求。
N Max ( baud) = T Interpolation max{ T Read ( baud) , T Write ( baud) , T ReadWrite ( baud) } ( 1) L Read + L ReplyRead ms baud × 10 - 3 L Write + L ReplyWrite T Write ( baud) = ms baud × 10 - 3 L ReadWrite + L ReplyReadWrite T ReadWrite ( baud) = ms baud × 10 - 3 T Read ( baud) = ( 2) ( 3) ( 4)
· 98· 3. 2 SCPBus 实时通信机制
组合机床与自动化加工技术
第1 期
为了保证实时数据( 数控系统中的轴数据 ) 能够 在期望的时间内得到更新, 非实时数据也能在相对 宽松的时间内也得到更新, 需要一个强有力的调度 — — 机制来保证, 另外还需要添加一个必要的限制— 实时性从站的数目的限制。 实时性从站的个数限制 可以通过下列公式进行计算:
为了增强对外界干扰的抗干扰能力, 减少总线误 SCPBus 以差分信号为载体进行数据传输, 码率, 在主 从站的两端, 加入终端匹配电阻, 在高波特率或者是长 [ 4 ] 距离传输的情况下, 减少对信号的反射干扰 。除此 以外, 为了使总线在空闲时期和主从站断开时期有一 个确定的电平, 在两端加入了偏置电阻。 考虑到数控系统轴数据的通信周期一般为 8ms、 4ms、 1ms, 也就是说轴数据需要很高的通行速度, 需 要在一个插补周期内完成一次轴数据刷新, 所以对 485 芯片通信速度要求较高。 另一方面, 因为要实现 多从站通信, 所以从站的 485 芯片的发送端需要有 [5 ] 与总线断开的功能 , 也就是说在同一时间, 只能有 一个从站挂在总线上, 并与主站通信。 综上, 在选择 485 接口芯片时, 主要需要考虑这两个要求, 故选择 了 TI 公司 SN65HVD36 高速 485 芯片。 该芯片最高 速度 20Mbps, 完全满足嵌入式数控系统的速度要求 , 而且该芯片有发送和接收使能端, 满足多从站星形 连接要求。