tag 标签: com

相关帖子
相关博文
  • 热度 12
    2013-11-13 14:23
    1192 次阅读|
    0 个评论
    近日看了crazy的博文关于uart分频的思想,觉得不错。原理是根据dds。但也有些地方是不太明白,特做个备份。原文如下: 一、为啥要说任意分频 也许FPGA中的第一个实验应该是分频实验,而不是流水灯,或者LCD1602的"Hello World"显示,因为分频的思想在FPGA中极为重要。当初安排流水灯,只是为了能让大家看到效果,来激发您的兴趣(MCU的学习也是如此)。 在大部分的教科书中,都会提到如何分频,包括奇数分频,偶数分频,小数分频等。有些教科书中也会讲到任意分频(半分频,任意分数分频)原理,用的是相位与的电路,并不能办到50%的占空比,也不是很灵活。 但没有一本教科书会讲到精准,浅显易懂的高精度任意分频原理(至少Bingo没看到过),同时也没有一种设计能用同一个电路实现任意频率的控制。Bingo对于当年做的任意波形发生器时候的相位累加器原理,从中受到启发,总结出高精度任意频率合成的重要思维,在此贡献给大家,希望对大家有用。 二、任意分频原理以及性能 1. DDS相位累加器 (1)DDS合成流程 首先讲诉DSS(直接频率合成法)的原理。 DDS是重要的频率合成方法,在波形发生器中有极其重要的应用。DDS主要由以下几部分组成: a) 相位累加器 b) RAM数据读取 c) D/A转换器 d) 低通滤波器 见如下流程图:直接频率合成法的流程图,有固定模块,输入频率控制器,输出固定频率的波形。 此电路最主要模块是相位累加器,通过相位累加器循环计数,循环读取RAM的数据,从而得到固定频率的波形数据。 (2)相位累加器原理 相位累加原理流程如上所示: 输入频率控制字,根据算法,来实现相位的变化,分析如下所示: 假定FPGA基准频率为50MHz,即基准频率: (MHz) 假定计数器为32位计数器,即 ; K为频率控制字,则相位输出的频率为: (1) 即 (2) 根据相位累加原理,以及RAM缓存读取数据,每一次 的循环,RAM数据间隔K读取一次。 当K=1的时候,公式能输出最小频率,根据公式(1): 所以,最小波形频率步进为0.011655Hz。 当fo=1Hz的时候,根据公式(2) 所以,每Hz的增减,K的步进为85.90。 当K=N/2的时候,公式能输出最大频率(因为每个CLK跳变一次),此时,根据公式(1),得到 : 因此,根据频率控制字K的变化,能输出及固定频率的波形。 2. 任意频率分频原理 在FPGA中某些应用场合,对频率要求比较高的情况下,用相位累加器原理来生成固定频率的方法,未尝不可。 我们规定,对Cnt进行对半50%拆分,具体如下: (1)当 的时候, ,即低电平; (2)当 的时候,fo=1,即高电平。 同上: 在FPGA中应用,Verilog代码如下所示: /*************************************************** * Module Name : clk_generator * Engineer : Crazy Bingo * Target Device : EP2C8Q208C8 * Tool versions : Quartus II 9.1SP1 * Create Date : 2011-6-25 * Revision : v1.0 * Description :   **************************************************/ /************************************************* fc = 50MHz 50*10^6 fo = fc*K/(2^32) K = fo*(2^32)/fc = fo*(2^32)/(50*10^6) **************************************************/ module clk_generator # ( parameter FREQ_WORD = 32'd8590 //1KHz ) ( input clk, //50MHz input rst_n, //clock reset output reg clk_out ); //-------------------------------------- reg max_value; always@(posedge clk or negedge rst_n) begin if(!rst_n) max_value = 1'b0; else max_value = max_value + FREQ_WORD; end //-------------------------------------- always@(posedge clk or negedge rst_n) begin if(!rst_n) clk_out = 1'b0; else begin if(max_value 32'h7FFF_FFFF) clk_out = 1'b0; else clk_out = 1'b1; end end endmodule 本代码由Bingo从DDS相位累加器中,相应移植总结出来的任意频率分频原理,本模块应用在多个对频率精准度要求比较高的工程中(如UART中,要得到115200Hz的bps,用这种任意分频的原理来得到精准的方法,一定程度上能够提高数据传输的准确率)。 在DDS中的相位累加器的任意分频原理,在一般工程中同样可以应用。在某些应用场合,还是值得考虑的。
相关资源
  • 所需E币: 5
    时间: 2023-3-6 16:30
    大小: 3.58MB
    上传者: 责任全在软件
    CSharp写的COM口助手程序
  • 所需E币: 3
    时间: 2022-10-8 22:35
    大小: 615.14KB
    上传者: czd886
    基于COM技术的可扩展视频监控系统架构设计
  • 所需E币: 0
    时间: 2022-5-10 09:34
    大小: 436.17KB
    AUTOMATICFRICTIONIDENTIFICATIONANDCOMPENSATIONWITHASELF-ADAPTINGDUALRELAY
  • 所需E币: 0
    时间: 2022-5-5 16:57
    大小: 373.12KB
    NextGeneration1-PassTestSynthesisDFTCompiler(Synopsys)
  • 所需E币: 1
    时间: 2022-5-2 14:47
    大小: 20.42MB
    NumericalRecipes-TheArtOfScientificComputing-3e-2007-CambridgeUniversityPress
  • 所需E币: 1
    时间: 2022-5-1 16:06
    大小: 176.32KB
    上传者: ZHUANG
    基于COM的多传感器机器人系统的软件设计
  • 所需E币: 1
    时间: 2022-1-6 21:54
    大小: 284.25KB
    上传者: ZHUANG
    基于COM的嵌入式系统通用硬件抽象层框架设计
  • 所需E币: 5
    时间: 2021-9-10 11:12
    大小: 127.72KB
    上传者: czd886
    基于COM的操作系统在嵌入式系统中的应用
  • 所需E币: 0
    时间: 2021-3-23 23:26
    大小: 3.86MB
    上传者: stanleylo2001
    visca圆口8针转接Com串口线制作教程
  • 所需E币: 0
    时间: 2020-9-22 23:20
    大小: 3.86MB
    上传者: bwj312
    Visca圆口8针转接Com串口线制作教程
  • 所需E币: 1
    时间: 2020-5-25 15:18
    大小: 4.03KB
    上传者: Argent
    VB是早期比较流程的编程语言,VisualBasic由微软公司开发,是世界上使用人数最多的语言。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。感兴趣的网友们快来下载,练练手吧。
  • 所需E币: 4
    时间: 2019-12-25 22:42
    大小: 338.03KB
    上传者: wsu_w_hotmail.com
    利用COM技术从数码像机上显示并下载图片……
  • 所需E币: 4
    时间: 2019-12-25 21:05
    大小: 129.69KB
    上传者: 16245458_qq.com
    制作步骤:先将MPLAB6.3中的BL010100.HEX(MPLAB6.4是BL010101.HEX烧到16F877,CONFIGURATIONWORD(ADDRESS2007h)=3F3Ah要烧正确。按照电路图做好板子。将板子的RS-232Port接到PC的COMPort。执行MPLAB,将Debugger或Programmer设为MPLABICD2。点选MPLABICD2SetupWizard设定COMPort。关掉COMPort的FIFO(在Windows的COMPort驱动程序里)。Connect、DownloadICD2OS。……
  • 所需E币: 4
    时间: 2019-12-25 15:41
    大小: 243.73KB
    上传者: 16245458_qq.com
    提出一种基于CAR构件的用户自定义事件机制.该机制是一种适用于嵌入式系统的、用户自定义的、实现客户与构件间交互通信的计算机运行环境的事件管理机制及装置.该机制可自动生成构件,生成构件具有升级独立性、构件互操作的简单快速性、接口重用性、构件本地/远程透明化、编程语言无关性等特性.该机制屏蔽了客户程序调用构件对象过程中繁琐的细节,大大简化了客户程序的实现.基于CAR构件的用户自定义事件机制的研究。叶蓉1‘2,陈榕1(1.同济大学基础软件工程中心,上海2000922.上海第二工业大学,上海210209)摘要:提出一种基于cAR构件的用户自定义事件机制。该机制是一种适用于嵌入式系统的、用户自定义的、实现客户与构件间交互通信的计算机运行环境的事件管理机制及装置。该机制可自动生成构件,生成构件具有升级独立性、构件互操作的简单快速性、接口重用性、构件本地/远程透明化、编程语言无关性等特性。该机制屏蔽了客户程序调用构件对象过程中繁琐的细节,大大简化了客户程序的实现。关键词:CAR构件用户自定义事件回调ReseaJ℃hofuserdefinedeventbasedonCARcomponent……
  • 所需E币: 4
    时间: 2019-12-25 15:11
    大小: 300.01KB
    上传者: 978461154_qq
    OSEK/VDX规范在汽车电子控制系统开发中具有重要地位,其中OSEK/VDX通信规范(OSEKCOM)为汽车电子通信系统的构建提供了依据和参考.本文介绍了OSEKCOM3.03规范基于消息的通信机制,设计并实现了一种基于CAN总线的通信系统,并对该系统的功能进行了测试.测试表明,该通信系统可以很好地实现消息的发送和接收功能.……
  • 所需E币: 3
    时间: 2019-12-25 11:34
    大小: 261.54KB
    上传者: rdg1993
    OSEK/VDX规范在汽车电子控制系统开发中具有重要地位,其中OSEK/VDX通信规范(OSEKCOM)为汽车电子通信系统的构建提供了依据和参考。本文介绍了OSEKCOM3.03规范基于消息的通信机制,设计并实现了一种基于CAN总线的通信系统,并对该系统的功能进行了测试。测试表明,该通信系统可以很好地实现消息的发送和接收功能。……
  • 所需E币: 4
    时间: 2019-12-24 23:11
    大小: 332.02KB
    上传者: givh79_163.com
    本文档介绍了如何使用LPC214X的USB端口设计一个虚拟的COM端口驱动程序。AN10420USBvirtualCOMportonLPC214xRev.01―04January2006ApplicationnoteDocumentinformationInfoContentKeywordsUSB,virtualCOMport,classdriver,Microcontroller,MCU,USBdevicerequest,USBresetphase,USBenumerationphase.AbstractThisdocumentdescribeshowtodesignavirtualCOMportdriverusingLPC214xUSBport.PhilipsSemiconductorsAN10420USBvirtualCOMportonLPC214xRevisionhistoryRevDateDescription0120060104I……
  • 所需E币: 5
    时间: 2019-12-24 23:05
    大小: 774.55KB
    上传者: 238112554_qq
    Abstract:ThisapplicationnoteexplainshowtoenablecommunicationbetweenaBluetooth®serialandMaxim1-Wireadapters.Topicsdiscussedare:selectingtheproperBluetoothadapter,setupinstructions,andsamplecodetoenablethecommunication.TheDS9097U1-WireCOMPortAdapterisusedtoreceivetheBluetoothcommands.Maxim>Designsupport>Appnotes>iButton>APP4633Keywords:bluetooth,wireless,mobile,1-Wire,alternative,Wi-Fi,radio,exchange,range,communication,SPP,serial,profile,phone,DS1920,DS1922,DS1923,temperature,COMFeb26,2010APPLICATIONNOTE4633Bluetoothto1-WireCommunicationUsingtheDS9097UBy:CarlosContrerasAbstract:ThisapplicationnoteexplainshowtoenablecommunicationbetweenaBluetoothserialandMaxim1-Wireadapters.Topicsdiscussedare:selectingtheproperBluetoothadapter,setupinstructions,andsamplecodetoenablethecommunication.TheDS9097U1-WireCOMPortAdapterisusedtoreceivetheBluetoothcommands.Introd……
  • 所需E币: 3
    时间: 2019-12-24 22:55
    大小: 337.96KB
    上传者: 二不过三
    摘要:包括iButton®器件在内,Maxim目前生产的1-Wire器件已有30多种。如何选择已有的应用程序接口API、软件范例及其它资源与这一类器件进行通信或为某个器件选择正确的资源是一件非常令人头疼的事。本文提供了该类资源的概述和选择指南。另外,还提供了一个目前1-Wire器件的功能说明和家族代码列表,便于用户查询。所提供的API包括:TMEX(MicrosoftWindows®API)、1-Wire公共文件资源(一种跨平台API)、Java™1-WireAPI(OWAPI)及其变形.NET1-WireAPI(OW.NET)和精简型.NET1-WireAPI(OW.NET.Compact)。本文所描述的所有API都是免费的,而且大多数情况下还包括完整的源代码。1-Wire软件资源指南和器件说明Jun28,2004摘要:包括iButton器件在内,Maxim目前生产的1-Wire器件已有30多种。如何选择已有的应用程序接口API、软件范例及其它资源与这一类器件进行通信或为某个器件选择正确的资源是一件非常令人头疼的事。本文提供了该类资源的概述和选择指南。另外,还提供了一个目前1-Wire器件的功能说明和家族代码列表,便于用户查询。所提供的API包括:TMEX(MicrosoftWindowsAPI)、1-Wire公共文件资源(一种跨平台API)、Java1-WireAPI(OWAPI)及其变形.NET1-WireAPI(OW.NET)和精简型.NET1-WireAPI(OW.NET.Compact)。本文所描述的所有API都是免费的,而且大多数情况下还包括完整的源代码。引言包括iButton在内,Maxim目前生产的1-Wire器件已有30多种。如何选择已有的应用程序接口(API)、软件范例及其它资源与这一类器件进行通信,或为某个器件选择正确的资源是一件非常令人头疼的事。本应用笔记提供了该类资源的概述和选择指南。本文中所描述的所有API都是免费的,而且大多数情况下还包括完整的源代码。1-Wire概述1-Wire总线是一种简单的信号交换架构,通过一条线路在主机与外围器件之间进行双向通信。所有的1-Wire总线都具有一个共同的特征:无论是芯片内还是iButton内,每个器件都有一个互不重复的、工厂光刻的序列号,因此,每个器件都是唯一的。这样就允许从众多连到同一总线的器件中独立选择任何一个器件。当1个、2个甚至多个1-Wire器件能共用一条线路进行通信,可以采用二进制位检索法依次查找每一个器件。一旦器件的序列号已知,通过寻址该序列号,就可……
  • 所需E币: 4
    时间: 2019-12-24 20:49
    大小: 673.77KB
    上传者: givh79_163.com
    我的com口收发代码……