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

    技术2025-07-21  26

    为什么单片机的晶振为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。。。。

     

    Processed: 0.012, SQL: 9