dsjsjf 发表于 2018-11-6 08:49:13

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

现在的MCU有很丰富的通讯端口,像STM32就有UART、SPI、I2C、CAN、SDIO、USB、Ethernet等等。来聊聊你在学习或工作中用过的通讯端口(不限于以上端口),用的标准协议还是自定义协议,是否有移植协议栈等等,以及它的特点。

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协议,就不作介绍了

xiaoshen-372360 发表于 2018-11-6 08:54:31

Modbus-RTU - Can-open

freeelectron 发表于 2018-11-6 09:02:11

一般情况下,还是建议使用标准协议,稳定,可扩展,除非有特别需求

weiwei4 发表于 2018-11-6 09:06:14

modbus , DMX , ArtNet-DMX , DALI等

xiaoshen-372360 发表于 2018-11-6 09:06:47

xiaoshen-372360 发表于 2018-11-6 08:54
Modbus-RTU - Can-open

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

一代睡神的崛起 发表于 2018-11-6 09:22:29

USART,can,lin

Angel_YY 发表于 2018-11-6 09:31:04

UART ,SPI,IIC,CAN比较常用,USB和以太网接口偶尔会用。
此外基于UART的RS232,RS485也是常用的。

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等几个协议。

tgw860910 发表于 2018-11-6 09:56:10

UART:跟上位机通讯,跟一些有通讯协议的外设通讯(iPod、碟盒之类)
IIC:传感器、驱动模块等等
SPI:eeprom、TF卡、SD卡
CAN:车载产品、OBD
FSMC:与FPGA的通讯
USB:虚拟串口

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

springvirus 发表于 2018-11-6 10:14:29

UART,用的最多了,比如2个板子用自有协议通信,比如驱动UART接口的蓝牙模块和语音模块。

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

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

公司产品有用到CAN和USB,都是使用片内的控制器完成底层
页: [1] 2
查看完整版本: 第四期:聊聊你使用过的通讯端口、协议等