[讨论] tm4c123如何做到单线 半双工通信??

QIHAO74   2016-2-3 10:26 楼主
也就是发送的时候,禁止接收
接收的时候,禁止发送
单线半双工通信

回复评论 (14)

是可以的,如果你自己规定相应的协议进行传输的话是没有问题的。你可以看下DS18B20这个温度传感器的资料,采用的是单总线数据传输的方式
点赞  2016-2-3 13:24
你可以参考一下Maxim 的1wire通信原理

1-wire 单总线是Maxim 全资子公司Dallas 的一项专有技术。与目前多数标准串行数据通信方式,如SPI/I2C/MICROWIRE 不同,它采用单根信号线,既传输时钟,又传输数据而且数据传输是双向的。它具有节省I/O 口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。

            1-wire 总线由一个总线主节点、一个或多个从节点组成系统,通过一根信号线对从芯片进行数据的读取。每一个符合 1-Wire协议的从芯片都有一个唯一的地址,包括48位的序列号、8位的家族代码和8位的CRC代码。主芯片对各个从芯片的寻址依据这64位的不同来进行。1-Wire总线利用一根线实现双向通信。因此其协议对时序的要求较严格,如应答等时序都有明确的时间要求。基本的时序包括复位及应答时序、写一位时序、读一位时序。 在复位及应答时序中,主器件发出复位信号后,要求从器件在规定的时间内送回应答信号;在位读和位写时序中,主器件要在规定的时间内读回或写出数据。1-wire 单总线适用于单个主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机位于总线上时系统可按照单节点系统操作;而当多个从机位于总线上,时则系统按照多节点系统操作。
点赞  2016-2-3 13:42
具体软件怎么做?
点赞  2016-2-3 14:24
软件这样切换不行吗?
ROM_UARTIntEnable(UART2_BASE, UART_INT_RX | UART_INT_RT);
ROM_UARTIntDisable(UART2_BASE, UART_INT_TX);

ROM_UARTIntDisable(UART2_BASE, UART_INT_RX | UART_INT_RT);
ROM_UARTIntEnable(UART2_BASE, UART_INT_TX);
点赞  2016-2-3 14:28
我现在用TM4C123与STM32L052单线半双工通讯
STM32L052可以设单线,正常
当TM4C123与他相连,单独用TX发送有响应,示波器测
如果在把RX连上去就变无响应
点赞  2016-2-3 14:36
半双工是由软件控制的,你不运行相关代码,自然不会有反应。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
点赞  2016-2-3 16:15
引用: chunyang 发表于 2016-2-3 16:15
半双工是由软件控制的,你不运行相关代码,自然不会有反应。

相关代码是什么。能告诉我吗?
点赞  2016-2-3 16:51
引用: QIHAO74 发表于 2016-2-3 16:51
相关代码是什么。能告诉我吗?

晕,你自己不会写么?
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
点赞  2016-2-3 18:29
引用: chunyang 发表于 2016-2-3 18:29
晕,你自己不会写么?

我看过库函数,没找到半双工是由软件控制的函数
点赞  2016-2-4 08:08
引用: QIHAO74 发表于 2016-2-4 08:08
我看过库函数,没找到半双工是由软件控制的函数

你弄懂了程序,自然就会知道,别求现成。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
点赞  2016-2-4 11:31
昨天,测试发现TM4C123发送接收中断响应正常,但只接收到一个字节 FF
不知道问题出在哪里?

点赞  2016-2-17 08:05
引用: QIHAO74 发表于 2016-2-17 08:05 昨天,测试发现TM4C123发送接收中断响应正常,但只接收到一个字节 FF 不知道问题出在哪里?
你需要多看看相关的例程,尤其是先把官方的例程看明白,基本功扎实后,这些问题迎刃而解。 这个跟打游戏一个道理,经验值太低了,一个小怪都打不死。何况你将来是要打 BOSS 的,但在这之前,你必须能杀成千上万个小怪才可以。 想办法,多花时间去增加各种属性值吧。 你是驱动什么传感器吗? 这种单线 半双工更 UART 有什么关系呢? 普通的 GPIO 口就可以,比如湿度传感器 DHT11 就是就是一个 IO 口来通信的,你可以搜一下,网上有程序。 本帖最后由 Study_Stellaris 于 2016-2-17 12:43 编辑
点赞  2016-2-17 12:38
TX,RX都是串口吧。单总线可不是串口啊。串口收发是两个引脚。你用串口设置单线,半双工,不行的。单总线收发,你就用普通io就行了。找个单总线的传感器,前面已经有人提到。看看手册如何描述数据的收发。控制这个io,什么时候高,什么时候低,电平维持多长时间,等等。
点赞  2016-2-23 00:03
DS18B20就是采用单总线双工通信,总线上可以挂接多个传感器,名字叫1wire,以前做过这个东西。
说实在的这种没有时钟的“自同步”通信很麻烦,而且速度不可能块。
并且单总线只能用于“一问一答”的主从令牌系统,做成突发通信的话软件上做冲突检测会很麻烦
点赞  2016-2-24 10:25
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复