原创声明:

本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处。

适用于板卡型号:

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

实验Vivado工程为“rs485_test”。

本章以AN3485模块介绍RS485的数据传输。

1.实验原理

前面介绍过RS232和RS422的实验,而RS485与RS422类似,也是采用差分信号传输,但RS485是半双工传输,也就是说,同一时刻只能有一个方向的数据传输。而且接口也比RS422少,只有差分信号A和B,而与ARM或FPGA相连的信号为DE(方向选择),DI(输入信号TXD),RO(输出信号RXD)。

从MAX3485文档中,发送方向,如果DE为1时,也就是输出使能,DI值为1时,对于差分信号A和B值为1和0,否则为0和1。

从接收来看,如果DE为0,A和B之间差值大于等于+0.2V,则RO值为1,否则为0。

2.程序设计

由于RS485是半双工传输,那么我们需要制定传输协议进行握手,设定第一个字节为8’h55,表示一帧数据的开始,接下来是传输的数据长度信息,由于FIFO大小限制(256),范围为1~255,接下来是数据。格式即为:起始8’h55+数据长度+数据。

其中uart_tx和uart_rx跟RS232实验一样,在这里只修改uart_test即可。我们设计的功能为初始状态下将DE设为0,也就是输入,等待接收上位机发来的数据,并缓存到FIFO中,FIFO大小设置为256,然后切换DE为1,也就是输出,把接收到的数据从FIFO中读出并发送出去。注意缓存的数据是除去起始8’h55和数量信息的。

在RCV_HEAD状态时,判断接收到的数据是否是”S”。

在RCV_COUNT状态时,如果数据长度小于0,则跳转到IDLE状态,如果大于0,则进入接收数据状态。

在RCV_DATA状态下,把数据写入FIFO,并且检查数据长度,切换RS485的方向为输出,并跳转状态。

在切换总线状态时,为了可靠工作,在WAIT状态下,延时1ms进行方向切换。

再然后是发送FIFO中的数据,SEND_WAIT状态是控制读使能信号fifo_rden,并且判断数据是否发送完,发送完后进入IDLE状态。

3. 实验测试

我们仍然使用USB转串口设备,通过杜邦线将RS485_1的A和B分别与设备的A和B连接。

打开串口工具,设置好串口号波特率,选择16进制发送,发送数据以8’h55开头,点击发送,即可在接收窗口看到返回的数据。

【ZYNQ Ultrascale+ MPSOC FPGA教程】第十三章 RS485实验相关推荐

  1. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第一章 MPSoC芯片介绍

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  2. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二章 硬件原理图介绍

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 简介 AXU2CGA/B的特点是体积小并扩展了丰富的外设.主芯片采用Xilinx ...

  3. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第四章 PL的LED实验

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  4. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十三章 PS端DP的使用

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  5. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第三十二章 PL读写PS端DDR数据

    本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4E ...

  6. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十一章 PS端UART读写控制

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  7. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第六章 FPGA片内RAM读写测试实验

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  8. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十四章 PS端SD卡读写

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  9. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第十六章 7寸液晶屏显示实验

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

最新文章

  1. 由于市场判断失误 希捷降低收入预期
  2. 公司--显示效果,多出来的用...
  3. mysql事件调度定时任务_详解MySQL用事件调度器Event Scheduler创建定时任务
  4. 批量反编译Andorid工程中的XML文件
  5. is present but cannot be translated into a null value due to being declared as a primitive type
  6. 如何正确复制CSDN文章到自己的博客
  7. 记忆网络之在对话系统中的应用
  8. 七牛直播云播放鉴权-时间戳防盗链
  9. 猫扑_猫女郎图片批量下载器
  10. 二叉树叶子结点个数统计
  11. 2020.7.25 PAT甲级7-2 The Judger (25分)
  12. Class ‘xxx‘ is public, should be declared in a file named ‘xxx.java‘
  13. 【广度优先搜索】N叉树的层序遍历 | 腐烂的橘子 | 单词接龙 | 最小基因变化 | 打开转盘锁
  14. oracle 10 dbca第12步,第10步:DBCA创建实例
  15. java判断小数位数_java如何获取一个double的小数位数
  16. 代码情诗——一份真情请查收
  17. windows11任务栏全透明
  18. Java项目:SSM药品进货销售仓储信息管理系统
  19. 管理员账户没有系统维护权限处理办法
  20. 通过Anaconda安装Python

热门文章

  1. 安卓自定义View进阶-事件分发机制原理【转自 app架构师 微信公众号】
  2. [记错]weblogic启动是报错***/AdminServer.lok. Server may already be running
  3. 台湾清华大学概率论笔记一 导论
  4. 找工作,在51job和chinahr上投了很多简历,回复的太少了。帮忙看下我的简历
  5. 华科计算机层次结构图,xchap-2-2_华中科技大学计算机学院:2007本科计算机系统结构(刘芳)_ppt_大学课件预览_高等教育资讯网...
  6. php 字符串转化字符集,php convert_cyr_string 将字符串由一种 Cyrillic 字符集转换成另一种...
  7. 前端菜鸟模仿新浪导航
  8. 一念逍遥服务器维护中,一念逍遥2月26日更新了哪些内容_2月26日更新内容一览_3DM手游...
  9. java使用json的时候常见的引包错误
  10. mysql binlog增量备份脚本_实现mysqlldump+binlog日志全量备份和增量备份脚本