智能串口通信卡及其波特率配置方法

文档序号:6629491阅读:366来源:国知局
智能串口通信卡及其波特率配置方法
【专利摘要】本发明提供一种智能串口通信卡及其波特率配置方法,包括:多个可编程时钟,控制器和串行通信芯片;其中,所述本地时钟与所述多个可编程时钟相连接,所述控制器与每个所述可编程时钟相连,用于控制所述可编程时钟并且为所述可编程时钟提供配置参数;所述多个可编程时钟用于对所述本地时钟的频率进行倍频形成倍频时钟,并根据所述倍频时钟和所述配置参数生成输出信号。本发明所述的智能串口通信卡和配制方法,在本地晶振和控制器之间增加了一级可编程时钟,与控制器实现了一个配置环路,能够任意配置2bps~10Mbps范围的波特率。
【专利说明】智能串口通信卡及其波特率配置方法

【技术领域】
[0001]本发明涉及串口通信卡领域,尤其涉及智能串口通信卡及其波特率配置方法。

【背景技术】
[0002]波特率(8311(1 1-^6)即调制速率,指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数。波特率是串行通信中非常重要的指标。目前市面上的串口卡种类较多,多数是基于标准波特率,且波特率范围小于31如8 (1^8:兆位/秒),标准波特率下精度可达0.01%,非标准波特率只能达到1%,目前市场上大部分串口卡是在控制器内部对于时钟先倍频然后再分频的方法实现,这就存在某些频率不能准确产生的问题。


【发明内容】

[0003]在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
[0004]本发明提供一种智能串口通信卡,包括:多个可编程时钟,控制器和串行通信芯片;
[0005]其中,
[0006]所述本地时钟与所述多个可编程时钟相连接,所述控制器与每个所述可编程时钟相连,用于控制所述可编程时钟并且为所述可编程时钟提供配置参数;
[0007]所述多个可编程时钟用于对所述本地时钟的频率进行倍频形成倍频时钟,并根据所述倍频时钟和所述配置参数生成输出信号。
[0008]本发明还提供一种基于智能串口通信卡的波特率配置方法,包括:
[0009]将本地时钟引入多个可编程时钟,所述多个可编程时钟对所述本地时钟进行倍频形成倍频时钟;
[0010]设定输出信号的波特率,控制器根据所述设定的输出信号的波特率需求计算所述多个可编程时钟的配置参数;
[0011]根据所述倍频时钟和所述配置参数生成输出信号。
[0012]本发明所述的智能串口通信卡和配制方法,在本地晶振和控制器之间增加了一级可编程时钟,与控制器实现了一个配置环路,能够任意配置2如8?101如8范围的波特率。

【专利附图】

【附图说明】
[0013]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1为本发明中智能串口通信卡硬件示意图;
[0015]图2为本发明中基于智能串口通信卡的波特率配置方法流程图;
[0016]图3为本发明中计算配置参数流程图;
[0017]图4为本发明中计算分频系数算法图。
[0018]附图标记:
[0019]10-本地时钟;20-可编程时钟;30-控制器;40-串行通信芯片。

【具体实施方式】
[0020]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021]实施例一:
[0022]如图1所示,本发明提供了一种智能串口通信卡,包括:多个可编程时钟20,控制器30和串行通信芯片40,
[0023]其中,
[0024]所述本地时钟10与所述多个可编程时钟20相连接,所述控制器30与每个所述可编程时钟20相连,用于控制所述可编程时钟20并且为所述可编程时钟20提供配置参数;
[0025]所述多个可编程时钟20用于对所述本地时钟10的频率进行倍频形成倍频时钟,并根据所述倍频时钟和所述配置参数生成输出信号。
[0026]本发明所述的智能串口通信卡针对目前市场上大部分串口卡在控制器内部对于时钟先倍频再分频的方法,不能准确产生某些频率的波特率,在本地晶振和控制器之间增加了一级可编程时钟,与控制器实现了一个配置环路,能够任意配置2如8?10他%范围的波特率,并且波特率精度可达0.01%。首先将本地50册12时钟引入多个可编程时钟,控制器根据最后输出信号的波特率计算所要配置给可编程时钟的参数并将配置好的参数反馈提供给所述多个可编程时钟,所述多个可编程时钟将本地时钟倍频到2.5(^2,根据所述
2.56?的倍频时钟和配置参数生成输出信号。
[0027]可选的,所述控制器40还包括判断模块和参数配置模块;
[0028]所述判断模块用于判断所述输出信号的波特率是否不小于11如8,
[0029]若是,则所述参数配置模块设置¢£113511111)161? 1:6为固定值16,081881111)16^81:6为与^^11(1成整数倍关系的数值,^811(1为所述输出信号的波特率;
[0030]否则,所述参数配置模块进行分频并计算分频系数,所述分频系数(114(161 =211^1)8/ (32^^811(1),所述分频系数需转换成无符号的长整型数据,并向上取整,所述¢£113511111)161? 1:6需要通过计算得出。
[0031]当波特率大于等于11如8时,不需要分频,所述参数配置模块设置为固定值,即为所述输出信号的波特率的16倍;
[0032]因为可编程时钟输出的最小时钟有限,所以在低波特率的情况下需要在控制器内部做分频,即当波特率小于IMbps时,需要进行分频,所述分频系数divider = 2Mbps/(32*fbaud),并且将计算后的分频系数转化为无符号的长整型数据,向上取整,所述calSampleRate 需要通过计算得出,calSampIeRate = fbaud*32*divider。
[0033]计算出calSampleRate 后,计算配置参数 CAL_NUM = 2.5GHz/calSampleRate。根据上述配置参数的公式计算出所述配置参数,通过控制器将其提供给可编程控制器。
[0034]上述配置参数CAL_NUM等效为A+B/C的形式,A为整数部分,C为固定值23°_1,B为小数部分相应计算出来的分子。
[0035]可选的,所述控制器还包括三个寄存器,所述三个寄存器分别用来存储所述配置参数的A、B、C部分数值。将存储的A、B、C数值和计算得出的分频系数divider设定给控制器,所述控制器根据上述参数进行波特率的配置。
[0036]可选的,所述控制器还与所述串行通信芯片40相连,将数据按照波特率输出给所述串行通信芯片40。所述可编程控制器为现场可编程门阵列,FPGA,作为专用集成电路领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,通过现场可编程门阵列来控制上述的多个高精度可编程时钟,先将本地时钟引入可编程时钟,在将其倍频,然后根据波特率的需要计算配置参数直到最后将波特率输出给串行通信芯片,可以发挥其配置灵活,时序控制能力强的优势。
[0037]实施例二:
[0038]如图2所示,本发明还提供一种基于智能串口通信卡的波特率配置方法,包括:
[0039]步骤10:将本地时钟引入多个可编程时钟,所述多个可编程时钟进行倍频形成倍频时钟;
[0040]步骤20:设定输出信号的波特率,控制器根据所述设定的输出信号的波特率需求计算所述多个可编程时钟的配置参数;
[0041]步骤30:根据所述倍频时钟和所述配置参数生成输出信号。
[0042]本发明在本地时钟和控制器之间增加了多个可编程时钟,所述可编程时钟与控制器形成了一个配置环路,可以实现高精度的波特率输出。
[0043]首先将本地的50MHz时钟引入多个可编程时钟,将其倍频到2.5GHz,然后根据设定的输出信号的波特率需求计算配置参数。
[0044]可选的,如图3所示,所述“控制器根据所述设定的输出信号的波特率需求计算所述多个可编程时钟的配置参数”包括:
[0045]判断所述设定的输出信号的波特率是否不小于IMbps ;
[0046]如果是,贝1J不需进行分频,且设置calSampleRate为固定值16, calSampleRate为与fbaud成整数倍关系的数值,fbaud为所述输出信号的波特率;
[0047]否则,需进行分频并计算分频系数,所述分频系数divider = 2Mbps/ (32*fbaud),所述分频系数divider需转换成无符号的长整型数据,并向上取整,所述calSampleRate需要通过计算得出。
[0048]可选的,需要计算分频系数时,所述calSampleRate = fbaud*32*divider。
[0049]所述计算分频系数通过上位机中计算波特率分频算法得出,如图4所示,以保证2bps?1Mbps范围内都可以实现波特率的准确输出。当不需要分频的时候,calSampleRate = fbaud*16 ;当需要进行分频的时候,所述分频系数divider =2Mbps/(32*fbaud),并且将计算后的分频系数转化为无符号的长整型数据,向上取整,calSampleRate = fbaud氺32氺divider。
[0050]可选的,所述配置参数为CAL_NUM,CAL_NUM = 2.5GHz/calSampleRate,所述配置参数CAL_NUM需要等效为A+B/C的形式,A为整数部分,C为固定值23°_1,B为小数部分相应计算出来的分子;将所述配置参数的A、B、C部分的数值分别存储于控制器的三个寄存器中。
[0051]根据公式计算出的CAL_NUM是一个浮点数,这样可以将其等效为A+B/C的形式,A为整数部分,C为固定值23°-1,B为小数部分相应计算出来的分子,这样将对应的数值分别配置到可编程时钟的A,B和C寄存器中,控制器根据CAL_NUM和divider最终确定要输出的波特率,从而实现从2pbs到1Mbps的高精度波特率配置。
[0052]可选的,所述控制器将数据按照波特率输出给串行通信芯片。
[0053]下面举例说明配置参数的具体过程,首先用户要设定的波特率为9600bps,上位机根据分频算法判断其属于小于1000000bps的范围内,因此需要分频;
[0054]根据计算分频系数公式计算可得divider为7,然后计算calSampleRate为2150400Hz,然后计算 CAL_NUM 为 1162.5744047619047619047619047619 ;
[0055]将其分解为A,B 和 C 分别为,A = 1162,B = 616762416,C = 1073741823,这样将A, B, C和divider设定给控制器FPGA,FPGA根据A,B和C配置可编程时钟,然后在FPGA内部将可编程时钟产生的时钟信号按照divider的值进行分频,使得最终输出给串行通信芯片的波特率为9600bps,至此完成一次波特率配置。
[0056]50MHz的有源时钟晶振选用温度范围50ppm,高精度可编程时钟步进Ippm,从而保证输出波特率精度可达0.01 %。
[0057]在本发明上述各实施例中,实施例的序号和/或先后顺序仅仅便于描述,不代表实施例的优劣。对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0058]在本发明的装置和方法等实施例中,显然,各部件或各步骤是可以分解、组合和/或分解后重新组合的。这些分解和/或重新组合应视为本发明的等效方案。同时,在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
[0059]最后应说明的是:虽然以上已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范围内包括这样的过程、设备、手段、方法或者步骤。
【权利要求】
1.一种智能串口通信卡,其特征在于,包括:多个可编程时钟,控制器和串行通信芯片; 其中, 所述本地时钟与所述多个可编程时钟相连接,所述控制器与每个所述可编程时钟相连,用于控制所述可编程时钟并且为所述可编程时钟提供配置参数; 所述多个可编程时钟用于对所述本地时钟的频率进行倍频形成倍频时钟,并根据所述倍频时钟和所述配置参数生成输出信号。
2.根据权利要求1所述的智能串口通信卡,其特征在于,所述控制器还包括判断模块和参数配置模块; 所述判断模块用于判断所述输出信号的波特率是否不小于1Mbps, 若是,则所述参数配置模块设置calSampleRate为固定值16, calSampIeRate为与fbaud成整数倍关系的数值,fbaud为所述输出信号的波特率; 否则,所述参数配置模块进行分频并计算分频系数,所述分频系数divider = 2Mbps/(32*fbaud),所述分频系数divider需转换成无符号的长整型数据,并向上取整,所述calSampleRate需要通过计算得出。
3.根据权利要求2所述的智能串口通信卡,其特征在于,需要计算所述分频系数时,所述 calSampleRate = fbaud氺32氺divider。
4.根据权利要求2或3所述的智能串口通信卡,其特征在于,所述配置参数为:CAL_NUM, CAL_NUM = 2.5GHz/calSampleRate。
5.根据权利要求4所述的智能串口通信卡,其特征在于,将所述配置参数CAL_NUM等效为A+B/C的形式,A为整数部分,C为固定值23°-1,B为小数部分相应计算出来的分子。
6.根据权利要求5所述的智能串口通信卡,其特征在于,所述控制器还包括三个寄存器,所述三个寄存器分别用来存储所述配置参数的A、B、C部分数值。
7.根据权利要求1所述的智能串口通信卡,其特征在于,所述控制器还与所述串行通信芯片相连,将数据按照波特率输出给所述串行通信芯片。
8.一种基于智能串口通信卡的波特率配置方法,其特征在于,包括: 将本地时钟引入多个可编程时钟,所述多个可编程时钟对所述本地时钟进行倍频形成倍频时钟; 设定输出信号的波特率,控制器根据所述设定的输出信号的波特率需求计算所述多个可编程时钟的配置参数; 根据所述倍频时钟和所述配置参数生成输出信号。
9.根据权利要求8所述的基于智能串口通信卡的波特率配置方法,其特征在于,所述“控制器根据所述设定的输出信号的波特率需求计算所述多个可编程时钟的配置参数”包括: 判断所述设定的输出信号的波特率是否不小于IMbps ; 如果是,则不需进行分频,且设置calSampleRate为固定值16, calSampleRate为与fbaud成整数倍关系的数值,fbaud为所述输出信号的波特率; 否则,需进行分频并计算分频系数,所述分频系数divider = 2Mbps/ (32*fbaud),所述分频系数divider需转换成无符号的长整型数据,并向上取整,所述calSampleRate需要通过计算得出。
10.根据权利要求9所述的基于智能串口通信卡的波特率配置方法,其特征在于,需要计算所述分频系数时,所述calSampleRate = fbaud*32*divider。
11.根据权利要求9或10所述的基于智能串口通信卡的波特率配置方法,其特征在于,所述配置参数为 CAL_NUM,CAL_NUM = 2.5GHz/calSampleRate。
12.根据权利要求11所述的基于智能串口通信卡的波特率配置方法,其特征在于,还包括: 将所述配置参数CAL_NUM等效为A+B/C的形式,A为整数部分,C为固定值23°_1,B为小数部分相应计算出来的分子。
13.根据权利要求12所述的基于智能串口通信卡的波特率配置方法,其特征在于,“将所述配置参数CAL_NUM等效为A+B/C的形式”具体包括: 将所述配置参数的A、B、C部分的数值分别存储于控制器的三个寄存器中。
14.根据权利要求8所述的基于智能串口通信卡的波特率配置方法,其特征在于,还包括: 控制器将数据按照波特率输出给串行通信芯片。
【文档编号】G06F13/42GK104298315SQ201410524614
【公开日】2015年1月21日 申请日期:2014年10月8日 优先权日:2014年10月8日
【发明者】左毅, 王司洋, 孙娴, 徐世昌, 朱雨 申请人:北京中科泛华测控技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1