就通信方式讨论:(以下不论arm核嵌入式低端高端均称为单片机)
单片机间通信可用uart或spi串口通信,uart适合速率不高,为了兼容低端单片机的场合。spi比较通用,而且速率可高至单片机核心时钟的1/4(但单片机io速率低的要注意不能超过单片机io速率)。高端单片机,如stm32f103系列,带有dma,可减轻cpu负担。
单片机与pc通信,一般用串口或usb接口。串口或用max232芯片与pc串口相连,或用usb转uart芯片(pl2302等)桥接。usb口需单片机带usb接口模块,或usb桥接芯片,或用软件模拟(仅业余使用,商品或工业使用不推荐)。
就usb接口讨论:
单片机所带usb接口多为device接口,很少有host接口。单片机与pc相连,单片机一般做device角色。
stm32部分型号带有usb接口。usb接口使用一般是先配置usb属性,诸如设备类别,vid(供应商id(特别说明,需要向usb协会申请购买)) pid(产品识别码),显示名称,供电属性等等信息。
配置好的usb,方可被计算机识别。
usb通信一般只能由pc向usb设备发起,有命令,批量读取,批量写入等操作。一般情形是通过命令进行简单的控制或确定写入或读取地址,然后通过批量读写传输数据。
一般usb设备开发,都需要编写上位机驱动。除非做成 usb hid 类协议,因为操作系统一般是带有hid驱动的,但缺点很明显,hid协议较复杂,且传输速率低。
上位机也要经过枚举设备,选择设备,打开设备等等一系列复杂操作。
区别:单片机间通信一般需自定协议,相对自由;单片机与上位机通信一般依靠现有协议,然后自定需要的功能协议。
单片机间通信机动性高,可利用中断等特性,非恶劣环境一般不需复杂控制可保证正常工作。
与上位机通信,一般受上位机等复杂环境影响,需考虑的方面比较多。
写到这才想起来。。楼主说的单片机间通信是近距离通信还是远距离通信?。。。我按照在同一设备内考虑的。若是较远距离,一般速率做不高,依靠485协议,或can协议等,甚至有的直接将通信放到局域网环境上。未见单片机间通过usb协议通信的,因为usb otg实现很复杂。
我国把第三代半导体材料被我国列为发展重点之一
莱迪思发ECP5 FPGA产品系列 适用于众多应用
电子可靠性技术:最坏情况分析方法
Mavic卖得太好 大疆首度回应延迟发货是因订单太多
第四季度苹果成为全球最大的智能手机制造商
基于stm32的mcu和pc的usb通讯技术
浅析空中航母的挑战有哪些
眼球追踪技术是VR下一个突破口?
苹果关闭iOS/iPadOS 13.2.3验证通道
碳罐电磁阀多久换一次_怎么判断碳罐是否堵塞
一文看懂五类线、超五类线和六类线的区别
百度投资一家新建人脸识别公司 最终受益人为李彦宏
中国发展高层论坛2018年会在毕竟举行,探讨人工智能产业推进措施
USB调试注意事项
区块链如何改变联盟营销
如何解决电路板上高元器件的密封问题
解析python整数浮点数不同进制整数
一键写卡丨中移芯昇科技“eSIM+”赋能“卡+X”产品规模落地
台积电入股中芯国际有望获批
什么是BARR-C