单片机的片上资源有多种通信方式,常用的如IIC、SPI、UART/USART、CAN,甚至高端一点的还具有以太网和USB通信。这么多的通信方式,为什么不统一成一种的?因为每种通信方式所出现的时间不同,使用场合不同,用户的要求和方案也不同,无法做到一种通信协议覆盖所有的应用环境和客户群体。下面分析一下这些通信协议的应用情况。
IIC和SPI多用在芯片级近距离通讯
IIC和SPI是应用非常广泛的通讯方式,主要用在芯片级进行短距离通信,如EEPROM存储芯片AT24C02就是IIC通讯的。这两种只适合长度为cm级别的通信。IIC具有两根总线,分别为SDA和SCL,SPI有三线和四线通讯方法,这两种方式主要用做芯片级的数据传输。不适合远距离传输。
CAN总线适合远距离传输
CAN总线在汽车工业和工控行业用的比较多,具有两根线CAN_H和CAN_L,可以进行km级别远距离传输。CAN总线为主从式通讯方式,一个主节点可以挂接多个从节点,从节点的ID标识符可以用来判断优先级,CAN总线具有仲裁机制。从节点故障推出后,不会影响其他设备的正常工作。
UART可以扩展出其他通信方式
UART也就是我们常说的串口,串口几乎为单片机的标配。单纯的UART只适合于近距离的通信,很多芯片也具有UART,所以可以用作芯片级的数据交换。除此之外,UART通过电平转换芯片可以扩展出其他的通信方式,如RS232、RS485以及CAN通讯等。
USB和以太网通讯接口
USB的通讯协议比较复杂,实现起来比较困难,像我们用的鼠标、摄像头用的就是USB通讯,USB也属于近距离通讯的方式。以太网接口使用与数据量比较大的情况,如果工控机、路由等。USB和以太网都有专用的协议栈芯片。
每一种通讯方式都是根据特定的使用环境所研发出来的,因为通讯距离不同、所传输的数据量不同、应用场景不同、客户需求不同等因素,每一种通讯方式都具有其用武之地。同时,也无法做到一种通信方式覆盖所有的应用场合、满足客户需求。所以,每一种通讯方式都有其存在的理由。
以上就是这个问题的回答,感谢留言、评论、转发。更多电子设计、硬件设计、单片机等内容请关注本头条号:玩转嵌入式。感谢大家。
个人电脑如何控制单片机?
个人电脑控制单片机要建立上位机和下位机的通讯连接
电脑(计算机)我们定义为上位机,单片机定义为下位机;两者之间可以通过串口或者USB进行连接通讯;比较老的电脑还有并口,现在基本上已经没有了。
串口连接通讯
一般的单片机都有UART接口,可以和电脑的串口进行通讯。
因为电脑的串口使用的是RS232电平,电平信号是+/-12V;而单片机的UART使用的是TTL电平,电平信号是5V(或者3.3V)。两者是没办法直接沟通的,需要用到232芯片来进行“翻译”
经过转换的信号就可以通讯了。电脑串口的Rx(接收)要接到单片机的Tx(发送),电脑串口的Tx(发送)要接到单片机的Rx(接收);一边发,另一边就是收。
电脑没有串口怎么办?
现在新的电脑,特别是笔计本,很多都取消了串口,那怎么办呢?我们可以使用USB转TTL的模块来进行转换
USB转UART的模块的Rx接到单片机的Tx;Tx接到单片机的Rx就要以了;
USB直接通讯
功能比较强大的单片机,还有USB接口,可以连接电脑的USB接口进行通讯
硬件连接通了,还需要通讯程序配合
电脑和单片机都需要运行适当的程序才可以互相收发数据。就好比水管接好了,也需要有水的配合才可以哦。
欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习
- 记得点赞和评论哦!非常感谢
如何学习单片机?
把这几个功能学透,你就掌握了单片机
单片机的学习绝不仅仅是对一项知识的掌握。想要学好单片机,需要从硬件结构、内部资源、外设应用等几个方面多方位入手。而要想成为一名嵌入式工程师,就要对单片机的基础非常熟悉,并且掌握C语言当中各个功能的初始化、启动、停止各类函数的编写调试。那么想要掌握单片机需要从哪几个方面入手呢?
1. 数字I/O的应用
在大多数的单片机实验中,跑马灯实验正是数字I/O的典型应用,也是跑马灯的实验被安排第一个的原因。通过将单片机的I/O引脚位进行置位或清零来点亮或关闭LED灯,虽然简单,但是这就是数字电路中的逻辑功能。数学I/O应用的实验还有按键实验,当按下某键时,某LED灯被点亮。数字I/O实验教会我们单片机的编程思想,必须首先对单片机的相应寄存器进行配置,以初始化I/O引脚,这样才能使该引脚具备数字输入与输出功能。单片机的一个内置或外置功能的使用,就是对该功能相关的寄存器进行设置,初始化,而这便是单片机编程的特点。少则4、5个函数搞定,多则十几行程序,要有耐心,别怕麻烦,所有的单片机都是这样。
2. RS232串口通讯
单片机都有UART接口,这个简单、古老的通讯方式可以与我们PC机的RS232接口直接连接通讯,当然,因为它们两者电平逻辑不同,必须要使用一个RS232电平转换芯片才能与PC机连接,例如Max232芯片。
UART接口的使用是非常重要的,通过这个接口,我们可以使单片机与PC机之间交换信息,“接口”概念的学习也便由此引入。使用UART接口也会学习到目前最为简单与常用的通信协议等知识。对于无法在线调试的单片机,也可以通过PC机的串口调试软件来监视到单片机实验板的数据。
3. 定时器的使用
学会定时器的使用,就可以利用单片机来实现典型的时序逻辑电路。时序逻辑电路的应用是最强大、最广泛的。例如,在工业的控制中,我们让某个开关每隔1秒钟打开与关闭一次。这个方案可以通过普通的数字集成电路实现,也可以通过PLC来实现,也可以通过CPLD或FPGA来实现,但是只有单片机的实现是最简单,成本也是最经济的。定时器是单片机内部资源里最为重要的一个,更是逻辑与时间控制实现的基础。
4. 中断
在单片机软件设计架构中,一段程序循环执行是其一个特点,也是一个弊端。每个操作指令的执行都需要一定的执行时间,如果程序没有执行到该指令,则该指令的动作就不会触发,这样就会忽略许多快速发生的事件,例如方波频率检测的上升沿。针对在单片机程序正常运行时能够对外部事件立即做出响应而设计了中断功能。当中断功能执行时,单片机优先处理中断程序,当中断处理完成后,再回到单片机的正常程序执行中。中断的机理是比较容易理解的,但是什么时候打开中断,什么时候关闭、屏蔽中断,需要如何配置才能使能中断的某些功能,中断里要执行哪些程序,这些程序的要满足哪些要求就需要花些时间去理解与实践了。中断学会后,就可以编写复杂结构功能的程序,可以一边闪着小LED灯,一边扫描着按键,一边发送着数据,也可以干着多个事情……比如,中断功能可以使单片机吃着碗里的,看着锅里的。根据传说中的8020定律,如果掌握了上面提到的这四步,那么就说明已经学会单片机80%的内容了。
5. I2C,SPI通信
单片机系统毕竟资源有限,而利用I2C、SPI通讯接口进行扩展外设是最常用的方法,也是非常重要的方法。这两个通讯接口都是串行通讯接口,典型的基础实验就是I2C的EEPROM实验与SPI的SD卡读写实验。
6. 比较、捕获、PWM功能
比较,捕捉与PWM功能可以使单片机更加适合电机控制,信号检测,实现电机速度与步长的调节。PWM波现在又是LED调光的主要手段。这里已经初步接触了数字电路里的模拟电路部分。
7. AD模数采集
单片机目前基本都自带多通道A/D模数转换器,通过这些A/D转换器可以单片机获取模拟量,用于检测电压、电流等信号。学习时要分清模拟地与数字地,参考电压,采样时间,转换速率,转换误差等重要概念。这一步学会了数字电路控制模拟电路部分,而最简单的A/D模数转换器就是电压表实验。
8. 学习USB接口、TCP/IP协议、工业总线
目前主流的通讯协议为:
USB协——下位机与上位机高速通讯接口;
TCP/IP——万能的互联网使用的通讯协议;
工业总线——诸如Modbus,CANOpen等工业控制各个模块之间通讯的协议。这些都会应用在未来的项目里,集成入单片机里的固件,并且也是当前产品开发的一个发展方向。
欢迎关注头条号“玩转嵌入式”,获取更多电子设计知识。