1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在芯片和芯片之间的通信中,芯片要接收来自其他芯片传输过来的数字信号,同时或者不同时向其他芯片发送数字信号。我想知道芯片内部是如何处理这些数字信号的? 以最常见的串行通信为例,数据是一位一位传输的,不同的通信协议其通信波特率相差很大,从几K到几十M不等,芯片接收时是一位一位接收过来的,芯片是如何处理这些数字信号的?又是怎么知道这些不同排列的数字信号各自代表的含义,并相应做出动作发出回应的? 再者,芯片内部是如何知道接受的二进制是特定长度的数据位,是不是芯片内部有一个专门计数的寄存器,一旦开始接收,就以设定时长开始计数,在规定时长计数不够或者计数太多就认为是错误? |
|
相关推荐
2个回答
|
|
“特定长度的数据位”是通过波特率设置的,串口波特率决定每秒传输的数据位数。“不同排列的数字信号各自代表的含义”如某种芯片串口空闲引脚为高电平1,起始位为低电平0,数据位01自己规定,停止位为高电平1,如果你的数据位为0011 0000,转化为十进制就是48,对应ASCII码就是'0'。“不是芯片内部有一个专门计数的寄存器”设置采样频率对信号进行采集,例如采样频率可以设置为16倍采样(波特率的16倍),采样到起始位,说明有数据传过来,采样的数据位放在接收移位寄存器里,采样到停止位说明数据传输结束。实在不理解,可以用示波器抓波形试试,或者去看一下SPI的时钟线和数据线是如何配合的。
最佳答案
|
|
|
|
芯片之间是按照某种通讯协议进行的。具体用那个协议,在芯片的使用说明资料中,有详细介绍。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
852 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
592 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
705 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
926 浏览 2 评论
657 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11992 浏览 31 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 21:11 , Processed in 0.613331 second(s), Total 73, Slave 57 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号