一、相互关系与计算
1.1 时钟、频率和波特率的关系
PCIE串口所支持的波特率与串口基准频率有关,需要根据实际使用的目标波特率调整串口基准频率。串口内部基准时钟来源包括:
- 外接晶体提供串口时钟:芯片内部具有频率振荡器,可通过外接晶体及电容产生串口所需时钟。
- 内部PLL提供串口时钟:将芯片CKSEL引脚接PERST#引脚,则通过内部PLL产生串口所需时钟,内部PLL频率为125MHz。
1.2 分频、倍频与波特率的关系
芯片内部可对时钟信号进行分频和倍频,分别产生各个串口的内部基准时钟。当时钟信号由外接晶体提供时,串口基准频率=外接晶体频率的1/12分频或者2倍频。当时钟信号由内部PLL提供时,串口基准频率=内部PLL频率的1/68分频或者不分频。计算公式:
串口波特率=串口基准时钟/16/分频寄存器(DLL/DLM)
针对串口非标准波特率的使用,即可通过更换外部晶体和更改内部频率系数来进行调整。在串口属性页面进行修改,驱动安装程序支持安装时进行频率的配置。
以PCI-Express转多串口芯片CH382/CH384为例:芯片内部具有时钟振荡器,可以通过外接晶体及电容产生串口所需的外部时钟信号。如果不接晶体和电容,那么将CKSEL 引脚接PERST#引脚则可以通过内部PLL 产生串口所需时钟。
CH384 内部将XO 引脚的外部时钟信号进行分频或倍频,分别产生各个串口的内部基准时钟。为了与现有计算机串口的16C550 芯片兼容,默认的内部时钟频率是1.8432MHz,对应的最大串口波特率是115200bps。CH384 芯片支持多种内部时钟频率,当内部时钟频率加倍时,如果应用软件不变,那么实际的通讯波特率也加倍,即应用软件设置为115200bps 的串口实际为230400bps。
CH384 的串口可以由CKSEL引脚或者外部配置芯片中的CFG/FREQ标志位选择分频或者倍频系数,将外部时钟的频率转换为两种内部时钟频率,从而支持更多更