精华内容
下载资源
问答
  • arm-linux内核中串口时钟频率及波特率的设置
    千次阅读
    2017-01-18 19:54:50

    本人使用的内核版本为linux-2.6.32,采用的ARM处理器为cortex-A8,采用的串口为NS16550。串口的驱动直接编译在内核中,当需要修改串口的时钟频率和波特率的时候, 需要修改以下地方。

    1、在板子平台目录下平台相关的头文件路径下串口的头文件中,即arch/arm/mach-***/include/mach/ns16550.h中修改以下宏定义即可修改串口的时钟频率

    #define CONFIG_SYS_NS16550_CLK        50000000

    2、在板子平台目录下的设备文件路径下的串口设备.c文件中,即/arch/arm/mach-***/dev-uart.c中修改以下的宏定义即可修改串口时钟频率

    #define UART_CLK 50000000

    3、内核的波特率是通过uboot的bootargs传递过来的。


    更多相关内容
  • uboot中串口时钟频率及波特率的设置

    千次阅读 2017-01-18 19:48:28
    本人使用的uboot版本为uboot2012,采用的串口是NS16550,在include/configs/***.h(即板子对应的config文件)中,添加了以下配置选项: /*NS16550 Configuration*/ #define CONFIG_SYS_NS16550 #define CONFIG_SYS...

    本人使用的uboot版本为uboot2012,采用的串口是NS16550,在include/configs/***.h(即板子对应的config文件)中,添加了以下配置选项:

    /*NS16550 Configuration*/
    #define CONFIG_SYS_NS16550
    #define CONFIG_SYS_NS16550_SERIAL
    #define CONFIG_SYS_NS16550_COM3  0x50920000
    #define CONFIG_SYS_NS16550_REG_SIZE -4
    #define CONFIG_SYS_NS16550_MEM32
    #define CONFIG_SYS_NS16550_CLK  50000000
    #define CONFIG_CONS_INDEX       3

    #define CONFIG_BAUDRATE                 115200
    #define CONFIG_SYS_BAUDRATE_TABLE       { 9600, 19200, 38400, 57600, 115200 }

    通过修改上述宏定义中的CONFIG_SYS_NS16550_CLK的值即可修改对应的串口时钟的频率,通过修改上述宏定义中的CONFIG_BAUDRATE 的值即可修改对应的串口波特率。




    展开全文
  • smartcard标准是3.57M,如果时钟因子( 波特率因子)为372, 则对应波特率为9600, 时钟因子= CLK / 波特率etu =时钟因子/ CLK = 1/波特率, 即传输一个符号位(一个bit)的时间。 ===============================...

    smartcard和串口复用, guardtime就是停止位。

    smartcard标准是3.57M,如果时钟因子(    波特率因子)为372,  则对应波特率为9600, 

     

    时钟因子=  CLK / 波特率

    etu =时钟因子/ CLK =  1/波特率, 即传输一个符号位(一个bit)的时间。

     

     

    ========================================================================================

     

    在串行通信中,常用波特率来表示数据传送的速率。在计算机中每秒钟内所传送数据的位数称为波特率,单位为波特Bd。 
    波特率因子好像就是接收时钟的频率是波特率的倍数,1、16、64~~~

    1、 波特率 
          在串行通信中,用 “ 波特率” 来描述数据的传输速率。所谓波特率,即每秒钟传送的二进制位数,其单位为 bps ( bits per second )。
    它是衡量串行数据速度快慢的重要指标。有时也用 “ 位周期” 来表示传输速率,位周期是波特率的倒数。国际上规定了一个标准波特率系列: 110 、 300 、 600 、 1200 、 1800 、 2400 、 4800 、 9600 、 14.4Kbps 、 19.2Kbps 、 28.8Kbps 、 33.6Kbps 、 56Kbps 。 例如: 9600bps ,指每秒传送 9600 位,包含字符的数位和其它必须的数位,如奇偶校验位等。大多数串行接口电路的接收波特率和发送波特率可以分别设置,但接收方的接收波特率必须与发送方的发送波特率相同。通信线上所传输的字符数据(代码)是逐为位传送的, 1 个字符由若干位组成,因此每秒钟所传输的字符数(字符速率)和波特率是两种概念。在串行通信中,所说的传输速率是指波特率,而不是指字符速率,它们两者的关系是:假如在异步串行通信中,传送一个字符,包括 12 位(其中有一个起始位, 8 个数据位, 2 个停止位),其传输速率是 1200b/s ,每秒所能传送的字符数是 1200/(1+8+1+2)=100 个。


    2、 发送/接收时钟 
          在串行传输过程中,二进制数据序列是以数字信号波形的形式出现的,如何对这些数字波形定时发送出去或接收进来,以及如何对发/收双方之间的数据传输进行同步控制的问题就引出了发送/接收时钟的应用。 
    在发送数据时,发送器在发送时钟(下降沿)作用下将发送移位寄存器的数据按串行移位输出;在接收数据时,接收器在接收时钟(上升盐)作用下对来自通信线上串行数据,按位串行移入移位寄存器。可见,发送/接收时钟是对数字波形的每一位进行移位操作,因此,从这个意义上来讲,发送/接收时钟又可叫做移位始终脉冲。另外,从数据传输过程中,收方进行同步检测的角度来看,接收时钟成为收方保证正确接收数据的重要工具。为此,接收器采用比波特率更高频率的时钟来提高定位采样的分辨能力和抗干扰能力。 
    3、 波特率因子 
          在波特率指定后,输入移位寄存器 / 输出移位寄存器在接收时钟 / 发送时钟控制下,按指定的波特率速度进行移位。
    一般几个时钟脉冲移位一次。要求:接收时钟 / 发送时钟是波特率的 16 、 32 或 64 倍。波特率因子就是发送/接收 1 个数据( 1 个数据位)所需要的时钟脉冲个数,其单位是个/位。如波特率因子为 16 ,则 16 个时钟脉冲移位 1 次。 例:波特率 =9600bps ,波特率因子 =32 ,则 接收时钟和发送时钟频率 =9600 × 32=297200Hz 。 
    4、 传输距离 
          串行通信中,数据位信号流在信号线上传输时,要引起畸变,畸变的大小与以下因素有关: 
    波特率 -- 信号线的特征(频带范围) 
    传输距离 -- 信号的性质及大小(电平高低、电流大小) 
    当畸变较大时,接收方出现误码。 
          在规定的误码率下,当波特率、信号线、信号的性质及大小一定时,串行通信的传输距离就一定。为了加大传输距离,必须加MODEM。 



     

    串行通信可以分为两种类型:同步通信、异步通信。

    1.异步通信的特点及信息帧格式:

    以起止式异步协议为例,下图显示的是起止式一帧数据的格式:

    <!--[if !vml]--><!--[endif]-->

    图1

    起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束, 字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。

    从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。

    异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示:

     

     

    逻辑0

    逻辑1

    正逻辑

    低电平

    高电平

    负逻辑

    高电平

    低电平

    异步通信的信息格式如下边的表所示

    起始位

    逻辑0

    1位

    数据位

    逻辑0或1

    5位、6位、7位、8位

    校验位

    逻辑0或1

    1位或无

    停止位

    逻辑1

    1位,1.5位或2位

    空闲位

    逻辑1

    任意数量

    注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。

        例:传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的波形象图2所示那样:异步通信的速率:若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒。

    <!--[if !vml]--><!--[endif]-->

    图2

    2.异步通信的接收过程

        接收端以“接收时钟”和“波特率因子”决定一位的时间长度。下面以波特率因子等于16(接收时钟每16个时钟周期,使接收移位寄存器移位一次)、正逻辑为例说明,如图3所示。

    <!--[if !vml]--><!--[endif]-->

    图3

    (1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数。 

    (2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”B,而不是干扰信号。

    (3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0。

    (4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。….,直到全部数据位都输入。

    (5)检测校验位P(如果有的话)。

    (6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。

    (7)本幀信息全部接收完,把线路上出现的高电平作为空闲位。

    (8)当信号再次变为低时,开始进入下一幀的检测。

    3、异步通信的发送过程

    发送端以“发送时钟”和“波特率因子”决定一位的时间长度。

    (1)当初始化后,或者没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。

    (2)当需要发送时,发送端首先输出逻辑0,作为起始位。

    (3)接着,发送端首先发送D0位,直到各数据位发送完。

    (4)如果需要的话,发送端输出校验位。

    (5)最后,发送端输出停止位(逻辑1)。

    (6)如果没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。如果还有信息需要发送,转入第(2)步。

    对于以上发送、接收过程应注意以下几点:

    (1)接收端总是在每个字符的头部(即起始位)进行一次重新定位,因此发送端可以在字符之间插入不等长的空闲位,不影响接收端的接收。

    (2)发送端的发送时钟和接收端的接收时钟,其频率允许有一定差异,当频率差异在一定范围内,不会引起接收端检测错位,能够正确接收。并且这种频率差异不会因多个字符的连续接收而造成误差累计(因为每个字符的开始(起始位处)接收方均重新定位)。只有当发送时钟和接收时钟频率差异太大,引起接收端采样错位,才造成接收错误。

    (3)起始位、校验位、停止位、空闲位的信号,由“发送移位寄存器”自动插入。在接收方,“接收移位寄存器”接收到一帧完整信息(起始、数据、校验、停止)后,仅把数据的各位送至“数据输入寄存器”,即CPU从“数据输入寄存器”中读得的信息,只是有效数字,不包含起始位、校验位、停止位信息。




    致谢

    1、时钟频率、波特率、波特因子关系详解

    展开全文
  • 描述CPU频率,就是CPU的时钟频率,简单说是CPU运算时的工作的频率(1秒内发生的同步脉冲数)的简称。单位是Hz,它决定计算机的运行速度。本文主要介绍cpu时钟频率计算公式及方法,具体的跟随小编一起来了解一下。cpu...

    描述

    CPU频率,就是CPU的时钟频率,简单说是CPU运算时的工作的频率(1秒内发生的同步脉冲数)的简称。单位是Hz,它决定计算机的运行速度。本文主要介绍cpu时钟频率计算公式及方法,具体的跟随小编一起来了解一下。

    cpu时钟频率简介

    随着计算机的发展,主频由过去MHZ发展到了当前的GHZ(1GHZ=10^3MHZ=10^6KHZ= 10^9HZ)。

    通常来讲,在同系列微处理器,主频越高就代表计算机的速度也越快,但对于不同类型的处理器,它就只能作为一个参数来作参考。另外CPU的运算速度还要看CPU的流水线的各方面的性能指标。由于主频并不直接代表运算速度,所以在一定情况下,很可能会出现主频较高的CPU实际运算速度较低的现象。因此主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。

    说到处理器主频,就要提到与之密切相关的两个概念:倍频与外频,外频是CPU的基准频率,单位也是MHz。外频是CPU与主板之间同步运行的速度,而且绝大部分电脑系统中外频也是内存与主板之间的同步运行的速度,在这种方式下,可以理解为CPU的外频直接与内存相连通,实现两者间的同步运行状态;倍频即主频与外频之比。

    主频、外频、倍频,其关系式:主频=外频×倍频。早期的CPU并没有“倍频”这个概念,那时主频和系统总线的速度是一样的。随着技术的发展,CPU速度越来越快,内存、硬盘等配件逐渐跟不上CPU的速度了,而倍频的出现解决了这个问题,它可使内存等部件仍然工作在相对较低的系统总线频率下,而CPU的主频可以通过倍频来无限提升(理论上)。我们可以把外频看作是机器内的一条生产线,而倍频则是生产线的条数,一台机器生产速度的快慢(主频)自然就是生产线的速度(外频)乘以生产线的条数(倍频)了。厂商基本上都已经把倍频锁死,要超频只有从外频下手,通过倍频与外频的搭配来对主板的跳线或在BIOS中设置软超频,从而达到计算机总体性能的部分提升。购买的时候要尽量注意CPU的外频。

    b63b006eda680d097adfddc5eab66c7e.png

    cpu时钟频率计算公式

    主频,也就是CPU的时钟频率,用公式表示就是:主频=外频×倍频。

    1、CPU的时钟频率也就是主频,简单地说也就是CPU的工作频率。

    2、一般说来,一个时钟周期完成的指令数是固定的,所以主频越高,CPU的速度也就越快了。

    3、不过由于各种CPU的内部结构也不尽相同,所以并不能完全用主频来概括CPU的性能

    4、外频就是系统总线的工作频率。

    5、倍频则是指CPU外频与主频相差的倍数。

    6、主频用公式表示就是:主频=外频×倍频。

    CPU频率计算方法---PLL设置

    cpu时钟频率和串口波特率的计算公式

    S3C44B0的系统时钟设置公式

    Fpllo 为系统的主频,此处为60MHz

    Fin 为晶振的频率,此处为10MHz

    一、通过PLL输出时钟脉冲频率的计算:

    a)Fpllo = (m × Fin)/ (p × 2^s)

    b)m = (MDIV + 8) , p = (PDIV + 2), s = SDIV

    c)20MHz 《 Fpllo 《 66MHz

    d)Fpllo * 2s 《 170MHz (s应该尽可能的大)

    e)1MHz 《= Fin/p 《 2MHz (最好是Fin/p = 1MHz)

    f)如果PLL打开则:Fpllo = Fout

    g)这样计算出MDIV, PDIV, SDIV的值写入PLLCON寄存器中就可设置Fpllo的输出频率。

    根据 d)知道s=1

    根据 e)知道p=10

    再根据 a)就知道了m=120,注意2^s代表2的s次方

    再根据 b)知道MDIV=112, PDIV=8, SDIV=1

    根据44B0数据手册5-14页算出 PLLCON=0X70081

    注意:PLLCON的结果不为一!比如P可以取8 取7……

    注意:PLLCON寄存器是20位的 各个区域中间有空的

    比如MDIV是寄存器里19-12位,PDIV是9-4位两个中间有11,10位空,如果用2进制算就添0

    不过做过硬件的就知道 大可不必只要把MDIV, PDIV, SDIV用WEINDOWS自带计算机直接由2进制转换成16进制顺序写就行

    比如MDIV=112=0x70, PDIV=8=0x08, SDIV=1=0x1

    PLLCON寄存器就是0x70081(看到这 连手册都不用翻了吧?:))

    还得多说一句 不是0x700801,因为SDIV=1=0x1不是0X01,跟PDIV=8=0x08不一样

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • FPGA串口波特率与系统时钟频率关系

    千次阅读 2020-02-24 10:23:29
    FPGA串口波特率与系统时钟频率关系 FPGA主板频率是50Mhz,T=20ns 9600波特率指的是9600bps,9600bit/s 然后周期是1/速率 = 1/9600 = 1.0416666667*...
  • 1.CC2530在正常运行的时候需要一个高频时钟信号和一个低频时钟信号 高频时钟信号主要供给CPU保证程序运行;低频时钟信号主要供给看门狗、睡眠定时器等片上外设。 2.时钟信号的来源 高频时钟信号有2个,芯片内部的16M...
  • 数字系统的设计师们面临着许多新的挑战,例如使用采用了串行器/解串器(SERDES)技术的高速串行接口来取代传统的并行总线架构。基于SERDES的设计增加了带宽,减少了信号数量,同时带来了诸如减少布线冲突、降低开关...
  • STM32~配置时钟频率[一文带你解决STM32主频配置]

    万次阅读 多人点赞 2019-01-12 11:22:19
    一. 时钟树 二. 使用外部晶振作为时钟源 三. 内部时钟源为时钟源
  • FPGA 串口波特率时钟的概念

    千次阅读 2020-06-18 08:42:27
    一 : 串口波特率等概念,115200等到底什么意思 1:比特率:9600bps 、115200bps 就是每秒中传输9600bit、115200bit,也就是相当于每一秒中划分成了9600等份。 9600bps:那么每1bit的时间就是1/9600秒=104....
  • 使用了stm32f103zet6 通过外部时钟输入模式进行频率采集,在100khz以上误差在10hz左右
  • HSI内部8MHz的RC振荡器的...HSI是高速内部时钟,RC振荡器,频率为8MHz。 HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 LSI是低速内部时钟,RC振荡器,频率为40kHz。 L..
  • 电脑的脉搏—时钟频率的来龙去脉PCSHOW.net 作者:《微型计算机》陈忠民 2005-10-04 一首美妙的乐曲会有一个主旋律,而电脑的主旋律就是CPU的时钟频率。主频、外频和倍频,它们从何而来?锁频、超频,又是怎么回事...
  • 然后启用SPI3的功能,这里因为博主的逻辑分析仪比较low,所以把SPI的波特率设置成最大分频,即256分频,此时CubeMX工具计算出来的时钟频率为1.5625MBits/s: 我们都知道,SPI3挂载在APB1总线上,受到总线的最大时钟...
  • 一般使用的zynq的ps时钟为33.333333MHz,如下图: 但有时候也会遇到其他频率的,如下图: 虽然不知道为啥要换来换去,但是人家设计没毛病啊,官方要求只要在30M~60M之间都行,如下图: 既然如此,就得修改...
  • 静态路由,默认路由,时钟频率(模拟运营商)运用口令 IP route ip 掩码 下一跳地址 IP route 0.0.0.0 0.0.0.0 下一跳地址或者端口 clock rate 64000 拓扑结构实验思路 首先要3个私有的网络,分别是用户端,DNS解析...
  • STM32使用库函数设置系统时钟频率

    千次阅读 2020-04-17 13:55:31
    tid=95570&extra=page=1,原子哥排版比较乱, 这里自己记录一下,以STM32F103...库函数的默认的系统时钟流程是这样的: 首先从汇编启动文件中调用C语言函数:void SystemInit (void) 这个函数会设置一些...
  • 随着数模转换器的转换速率越来越高,JESD204B 串行接口已经越来越多地广泛用在数模转换器上,其对器件时钟和同步时钟之间的时序关系有着严格需求。本文就重点讲解了JESD204B 数模转换器的时钟规范,以及利用TI 公司...
  • 系统时钟

    2021-07-20 04:40:35
    中文名系统时钟释义基于CMOS工艺的高性能处理器特点集成PLL可以从内部触发性能设计频率为200MHz系统时钟定义语音通常所说的系统时钟就是指时钟系统,它是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。...
  • 目录一、概述 一、概述 为了降低功耗,需要降低STM32H7的系统时钟,之前没有这样使用过,使用STMF103测试了下。这里简单记录下
  • 为何串口通信中接收端采样时钟频率是传输的波特率的16倍? 增强抗干扰是原因之一 标准UART可以选16倍采样,也可以选64倍采样,个人觉得应该是方便分频设计. 标准UART的RXD前端有一个"1到0跳变检测器",当其连续接受到8...
  • 基于STM32RBT6的频率测量程序源码,外部时钟计数测频率(1~32M精度较高),可供学习设计参考。 int main(void) { u32 Counter,freq; SystemInit(); delay_init(72); //延时函数初始化 始化为 9600 LED_Init();...
  • 在调试stm8L101的时候发现,使用115200的波特率发送数据,在串口调试助手发现比其他单片机显示慢,能感觉到字符是...由此想到可能是单片机时钟频率太低造成的数据处理不完。使用 u32_clk_freq = CLK_GetClockFreq()...
  • 结果这次使用YH的串口打印程序在ZDYZ的开发板调试项目工程(有点另类...),做功能验证,就出现了以上问题,出于好奇开始调试,最终发现是时钟频率问题。 看到下图这个配置,因为ZDYZ开发板使用的是8MHz外部晶振...
  • STM32的时钟系统

    2021-12-03 11:42:12
    时钟系统就是CPU的脉搏,决定cpu速率,像人的心跳一样 只有有了心跳,人才能做其他的事情,而单片机有了时钟,才能够运行执行指令,才能够做其他的处理 (点灯,串口,ADC),时钟的重要性不言而喻。 2、为什么...
  • STM32F103和F407时钟频率

    千次阅读 2019-01-11 11:29:08
    STM32F103: ...中修改晶振频率 -RTC晶振无,时钟由外部RTC芯片供应 B.各总线运行时钟: -系统时钟 = SYCCLK = AHB1 = 168MHz -APB2 = 72MHz  -APB1 = 36MHz -APB2负责AD,I/O,高级TIM,串口1。 -A...
  • 使用J-Link-RTT打印STM32系列APB1/APB2/HCLK/SYSCLK时钟频率
  • #include "stm32f10x_rcc.h"提供了查看时钟频率的函数:void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks); 把RCC_Clocks添加到watch窗口用jlink观察即可,或者用串口把数据打印出来也行。 可以看到,...
  • 后来有大神告诉我,两个单片机的时钟频率可能不同,得修改。具体修改步骤如下所示 1.首先要找到单片机对应的频率,从用户手册中查询HSE,我的单片机是8,如下图 2.然后打开单片机文件中的syst.....
  • 目前大多数MCU、串口通信IC等芯片或模块均支持UART通信,随着CPLD/FPGA应用得越来越广泛,用CPLD/FPGA来设计UART等接口已是数字电路设计的常见应用之一。 由于UART是异步传输,没有传输同步时钟。在CPLD/FPGA的UAR....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,926
精华内容 12,770
关键字:

串行接口时钟频率