电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

LPC2148串口高波特率通信解决方案VIP专享VIP免费

LPC2148串口高波特率通信解决方案_第1页
LPC2148串口高波特率通信解决方案_第2页
LPC2148串口高波特率通信解决方案_第3页
下载后可任意编辑第一章 问题提出由于 LPC214x USB 使用的晶振频率必须为 48MHz(经过倍频以后),对外接晶振有特别要求,不能使用标准的 11.0592MHz 晶振。因而在使用 USB 时,一般采纳 12MHz 晶振。而 12MHz 这样的晶振和标准波特率不成倍数关系,实际波特率和期望波特率往往不同。。下表是低波特率时期望波特率和实际波特率的对比 可以看出低波特率时,实际波特率的误差比较小,对传输影响不大。而当期望波特率高达 115200 时,通过计算得到实际波特率为 125000,误差较大,同时实验结果也表明假如此时不对其进行修正,则根本无法进行正确传输。网上大多数说法是不要使用过高的波特率传输,避开其造成的丢码率太高,而作者通过实验讨论证明,通过使用小数波特率发生器,完全可以像低波特率时一样的正确传输,并且在其设定过程中,实现并应用了多位小数的分数逼近法的算法,从而科学地避开了其他人一直以来根据经验或者反复试验得出参数的人工计算过程,彻底实现波特率计算和修正的自动化。第二章 小数波特率发生器第一节 简介UART1 小数分频寄存器(U1FDR)控制产生波特率的时钟欲分频器,用户可根据需要进行读写。该预分频器接受 VPB 时钟,并经过指定的小数要求产生一个输出时钟,小数由该寄存器的值决定。 UART1 小数分频寄存器(U1FDR)位描述下载后可任意编辑该寄存器控制波特率生成的始终预分频器。该寄存器的复位值为 UART1 禁能小数功能,以确保 UART1 的软件和硬件与没有该特性的 UART 完全兼容。故而代码中使用如下序列if( bps >= 115200) { Uart0SetFDR(bps); } Uart0SetDLML(bps); 可保证程序在高波特率时会设置小数波特率发生器,且低速率时也能正常工作。 下面的等式用于计算 UART1 波特率:UART1baudrate = PCLK/(16 *(256 * U1DLM + U1DLL)) * (MulVal / MulVal + DivAddVal)其中 PCLK 为 VPB 总线时钟,U1DLM 和 U1DLL 为标准的 UART1 波特率除数寄存器,DivAddVal 和 MulVal 为 UART1 小数波特率发生器特定的参数。DivAddVal 和 MulVal 的值应遵循以下的条件:1.1 <= MulVal <= 152.0 <= DivAddVal <= 153.假如 U1FDR 寄存器值不遵循这两个要求,那么小数分频输出未定义。假如DivAddVal 为 0,那么小数分频禁止且时钟将不会分频。第二节 使用小数波特率发生器——校准系数的确定根据以上公式很容易计算串口波特率,但是实际应用中,更...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部