你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

第四期:聊聊你使用过的通讯端口、协议等

[复制链接]
埃斯提爱慕 提问时间:2018-11-6 08:49 /
提示: 作者被禁止或删除 内容自动屏蔽
收藏 评论40 发布时间:2018-11-6 08:49

举报

40个回答
weiwei4 回答时间:2018-11-6 10:18:11
DMX , ArtNet-DMX , DALI 这几个都是灯光行业常用协议
DMX是能过串口发送DMX信号对DMX灯具进行控制,如舞台灯光之类的灯具一般都是DMX信号的,可做到灯光快速变化
ArtNet-DMX 就好像是网络版DMX灯光控制协议,通过网络传输ArtNet协议,终端控制设备再将ArtNet信号转换成DMX信号,进行灯具控制
DALI 协议也是一种国际常用的灯光控制协议,主要用用家居照明,商业场所照明,可对照明设备进行控制,监测,在一些高级酒店等商业场所终端照明设备会用到此类协议的照明设备,但跟主控制室的通信不一定是DALI协议的,可能有KNX之类的其它协议转换,因为没用过KNX协议,就不作介绍了

点评

了解了,感谢!  发表于 2018-11-6 10:21
奏奏奏 回答时间:2018-11-6 11:40:20
项目中用过的:主要是CAN与串口
协议是自己根据业务需求制定的
从大类来分:下发、上报、心跳(判在线与状态)
CAN协议因为数据位只有8个字节,信息比较多的时候只能分段发
从信息的完整闭环来看,控制下发的必须要有回复,超时算无回复错误,还要监控回复数据与预期是否一致,如不一致需要判为反馈出错。
出错后的处理:最有效的就是重启下面的执行节点,节点设置独立看门狗,所以重启实际上是触发禁止喂狗,就是重启了。重启后等一个时间间隔(预期重启时间)重发一次指令,如果再出错就报严重错误。
大概觉得有用的经验就这些。

点评

很好的经验,看来都是自定的协议。  发表于 2018-11-6 12:56
shenxiaolin_mai 回答时间:2018-11-6 08:54:31
Modbus-RTU - Can-open

点评

给大家讲讲具体一点呢,具体移植的哪个协议栈,移植过程等  发表于 2018-11-6 09:00
freeelectron 回答时间:2018-11-6 09:02:11
一般情况下,还是建议使用标准协议,稳定,可扩展,除非有特别需求

点评

你是否用过哪些?  发表于 2018-11-6 09:06
weiwei4 回答时间:2018-11-6 09:06:14
modbus , DMX , ArtNet-DMX , DALI等

点评

你说的这些我只用过Modbus,能否介绍一下另外几个,有什么特点,应用场合等等。  发表于 2018-11-6 09:07
shenxiaolin_mai 回答时间:2018-11-6 09:06:47

Modbus-RTU 是按照国标自己写的,国标上都有指导说明,写起来很简单,CAN-OPEN是直接在网上找的资料移植的,调试的过程还是比较艰辛,

点评

Modbus相对比较简单,移植FreeModbus也很方便。CAN-OPEN相对麻烦,我移植的是canfestival,有空可以交流。  发表于 2018-11-6 10:08
一代睡神的崛起 回答时间:2018-11-6 09:22:29
USART,can,lin

点评

可以介绍具体一点哦  发表于 2018-11-6 10:10
Angel_YY_ST 回答时间:2018-11-6 09:31:04
提示: 作者被禁止或删除 内容自动屏蔽
STM1024 回答时间:2018-11-6 09:42:57
本帖最后由 stm1024 于 2018-11-6 11:43 编辑

USART、IIC、SPI(SSP)、USB这些都是常见的协议,有个和SPI很像的SSI协议。还有以太网、Modbus、profibus等在工业上应用较广泛,LIN、FlexRay、CAN在汽车上应用也很广泛。目前我用的最多的还是CAN,在此基础上形成的应用层协议是有J1939、CANOpen和DeviceNet,其实只要把11898标准搞清楚,至于在这个基础之上的应用层就很不复杂了。以太网还在研究中,在此基础之上的协议族太多了,在感慨协议设计人员的nb的同时,也真心觉得这玩意儿体系太庞大了。
关于CANOpen,见http://www.can-cia.org/canopen/,下面有SDO、PDO等几个协议。

点评

CANOPEN是用的哪家的协议栈?  发表于 2018-11-6 10:23
不同的协议应用场合不同,我们需要根据自己的应用需求,确定使用哪种协议。  发表于 2018-11-6 10:11
DavidTan 回答时间:2018-11-6 09:56:10
UART:跟上位机通讯,跟一些有通讯协议的外设通讯(iPod、碟盒之类)
IIC:传感器、驱动模块等等
SPI:eeprom、TF卡、SD卡
CAN:车载产品、OBD
FSMC:与FPGA的通讯
USB:虚拟串口

协议的话就很多了,大部分是因应不同外设所定制的专用协议,但是硬件层都是不会改变的,改变的都是软件层的协议,不过IIC还是用软件模拟的更多

点评

F2\F4的硬件IIC我一直在用,读写EEPROM,目前没出现问题,但F1的一起没用。  发表于 2018-11-6 10:20
你肯定是用硬件IIC不太顺利,哈哈,我也是  发表于 2018-11-6 10:09
springvirus 回答时间:2018-11-6 10:14:29
UART,用的最多了,比如2个板子用自有协议通信,比如驱动UART接口的蓝牙模块和语音模块。

模拟SPI,还是用的很爽的,驱动过申请的铁电RAM片子和存字库用的Flash AT45DB321

感觉I2C比较难,用现成的模拟I2C程序驱动过MPU6050,获取到3轴的相关信息

公司产品有用到CAN和USB,都是使用片内的控制器完成底层

点评

硬件SPI还是很好用的,可以试试  发表于 2018-11-6 10:25
CC4 回答时间:2018-11-6 10:58:39
常用的还是 IIC SPI  USART 。 其他的全是USART

点评

这些应该是最最基本的了  发表于 2018-11-6 12:51
jeffhe1 回答时间:2018-11-6 11:25:24
樓主所講都是燈控 protcol , 都是一些特定領域使用 , 要廣泛的應用 , 就必須搭其他的 protcol , 才能做成真正的 system
TLLED 回答时间:2018-11-6 11:33:14
串口通信:UART 是使用最多的,
使用的协议有,RS485,CAN,LIN,SPI,I2C
RS485协议,在STM32上移植FREEMODUBUS协议从机,实现MOEBUS通信,接到上位机实现双工通信,这个协议栈主要移植的部分是串口中断,串口配置和定时器。通常是自己定义协议通过RS485来通信。
SPI和I2C根据硬件来匹配,和芯片有关。
CAN和LIN使用中也是根据自定义的协议来做,使用开源的协议栈不多。

点评

比较到位,我现在也是移植的FreeModbus,至于CANOPEN,只找到canfestival这个开源的  发表于 2018-11-6 12:54
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版