为何有的单片机的晶振要选择11.0592M?

为什么单片机的晶振为11.0592M?

这是因为单片机在进行串口通信的时候,比如以9600B/s的速率通信,那么发送数据的频率为9600HZ

那么如果我用12M的晶振来分频,N = 12M/9600 =1250

用11.0592M来分频,N = 11.0592M/9600 = 1152 

这么看似乎没有问题,但查找资料发现有一个叫12T单片机的概念,就是说12个晶振周期(12M的晶振,一个晶振周期为1/12M),机器做一个指令周期,刚好就是1/12M*12=1us,12T的晶振为12M单片机的时钟频率的最小单位是12M/12=1M,不是晶振12M。

故串口发送的周期发送要求为9600,这个分频系数需要用1M(12M的晶振的12T单片机)去分,即1M/9600 =104.167,这不为整数倍啊,不行的,会导致数据传输的两端因为时钟的误差,导致数据传输错误。用11.0592M即可解决这个问题,11.0592M/(12*9600)=96可以得到整数。

故11.0592M的晶振是为了匹配12T单片机可以得到精准的串口数据传输时钟。

那为什么波特率不设置为1000的整倍数呢?

查了资料发现:

1.为了保证有效通讯,根据电、传输介质等的物理特性结合串口设备使用的要求,确定RS232最大传输速率只能是115200,然后逐级二分得到57600,28800,19200……为适应这些速率,设计相应的晶振频率。

2.电话线路的带通是300--3KHz,当时HAYES先搞的modem,所以用的2400HZ信号,对应波特率是2400。由于基本频率确定了,以后采用的提高通讯速率的方法都是在2400基础上倍频的,所以形成了9600,19200。。。。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值