时钟信号

PCB的EMC设计

假装没事ソ 提交于 2019-12-06 06:47:57
1、PCB的EMC简单对策 同系统EMC的解决措施一样,PCB的EMC也要针对其三要素(干扰源、耦合途径、敏感装置)对症下药: 降低EMI强度 切断耦合途径 提高自身的抗扰能力 针对PCB的耦合途径之一传导干扰,我们通常采用扩大线间距、滤波等措施; 针对PCB的耦合途径之二辐射干扰,我们通常主要采取控制表层布线,增加屏蔽等手段; 2、单板层设置的一般原则 A.元器件下面(顶层、底层)为地平面,提供器件屏蔽层以及顶层布线提供回流平面; B.所有信号层尽可能与地平面相邻(确保关键信号层与地平面相邻),关键信号不跨分割; C.尽量避免两信号层直接相邻; D.主电源尽可能与其对应地相邻; E.兼顾层压结构对称; 以六层板为例,以下有3种方案: A.S1 G1 S2 S3 P1 S4 B. S1 G1 S2 P1 G2 S3 C. S1 G1 S2 G2 P1 S3 优先考虑方案B,并优先考虑布线层S2,其次是S3、S1; 在成本较高时,可采用方案A,优选布线层S1,S2,其次是S3,S4; 对于局部、少量信号要求较高的场合,方案C比方案A更合适;(为什么?) (注意,在考虑电源、地平面的分割情况下,实际情况因分割等因素可能有所出入) 3、电源、地系统的设计 3.1 滤波设计 3.1.1滤波电路的基本概念 滤波电路是由电感、电容、电阻、铁氧体磁珠和共模线圈等构成的频率选择性网络

K60时钟分析

梦想的初衷 提交于 2019-12-04 21:44:38
转载:https://blog.csdn.net/hcx25909/article/details/7164650 1.飞思卡尔K60时钟系统 飞思卡尔K60时钟系统如上图所示,可以发现器件的源时钟源一共有4个: ①内部参考时钟源,包括 Fast IRC和 slow IRC (IRC--Internal Reference Clock) ②外部参考时钟源,只一个EXTAL管脚作为时钟输入,这个可以使用有源晶体振荡器来实现 ③外部晶体谐振器,使用EXTAL和XTAL两个管脚来输入 ④外部32K RTC 谐振器,用于实时时钟的时钟输入 在图中可以看到,要为系统提供时钟信号,关键是要最终生成 MCGOUTCLK 输出。MCGOUTCLK 再经过分频便可以提供Core/system clocks、Bus clock、FlexBus clock和Flash clock。MCGOUTCLK 的产生有3个途径: ①由内部参考时钟源 Fast IRC 直接提供,这个时钟源集成在芯片的内部(包括Slow IRC),频率是2M ②由 FLL 或者 PLL 模块来提供 ③由外部时钟来直接提供,包括外部参考时钟源(1个管脚输入)、外部晶体谐振器经内部OSC logic产生的XTAL_CLK 和 RTC OSC logic 的时钟输出。 一般情况下,MCGOUTCLK 是由PLL或者FLL倍频来产生的

IIC总线规范

自作多情 提交于 2019-12-04 07:13:31
在消费者电子 电讯和工业电子中 看上去不相关的设计里经常有很多相似的地方 例如几乎每个系 统都包括 • 一些智能控制 通常是一个单片的微控制器 • 通用电路 例如 LCD 驱动器 远程 I/O 口 RAM EEPROM 或数据转换器 • 面向应用的电路 譬如收音机和视频系统的数字调谐和信号处理电路 或者是音频拨号电话的 DTMF 发生器 下面是 I2C 总线的一些特征: • 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL • 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机关系软件设定地 址 主机可以作为主机发送器或主机接收器 • 它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和 仲裁 防止数据被破坏 • 串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速 模式下可达 3.4Mbit/s • 片上的滤波器可以滤去总线数据线上的毛刺波 保证数据完整 • 连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制 Q I2C 总线支持任何 IC 生产过程 NMOS CMOS 双极性 两线――串行数据 SDA 和串行时钟 SCL 线在连接到总线的器件间传递信息 每个器件都有一个唯一的地址识别 无论是微控制器 LCD 驱动器 存储器或键盘接口

alsa声卡驱动分析总结(一)

落花浮王杯 提交于 2019-12-04 03:40:13
alsa声卡驱动分析总结 分析只列出部分重要代码,具体请参考 linux3.0 内核代码。 Alsa 架构整体来说十分复杂,但对于驱动移植来说我们仅仅只需要关心 ASOC 就足够了。 在学习 asoc 之前我们先了解一些专业术语: ASoC currently supportsthe three main Digital Audio Interfaces (DAI) found on SoC controllers and portable audio CODECs today, namelyAC97, I2S and PCM. ASoC 现在支持如今的SoC 控制器和便携 音频 解码器上的三个主要数字音频接口,即AC97 ,I2S,PCM(与pcm音频格式注意区分,前者是一种音频接口,后者是一种输入声卡的音频格式)。 AC97 AC97 ==== AC97 is a five wire interface commonly found on many PC soundcards. It is now also popular in many portable devices. This DAI has a reset line and time multiplexes its data on its SDATA_OUT (playback) and SDATA_IN

alsa声卡驱动分析总结

筅森魡賤 提交于 2019-12-04 03:35:01
不小心 参考文章: http://blog.csdn.net/droidphone/ http://blog.chinaunix.net/uid/22917448.html 分析只列出部分重要代码,具体请参考 linux3.0 内核代码。 Alsa 架构整体来说十分复杂,但对于驱动移植来说我们仅仅只需要关心 ASOC 就足够了。 在学习 asoc 之前我们先了解一些专业术语: ASoC currently supportsthe three main Digital Audio Interfaces (DAI) found on SoC controllers and portable audio CODECs today, namelyAC97, I2S and PCM. ASoC 现在支持如今的SoC 控制器和便携 音频 解码器上的三个主要数字音频接口,即AC97 ,I2S,PCM(与pcm音频格式注意区分,前者是一种音频接口,后者是一种输入声卡的音频格式)。 AC97 AC97 ==== AC97 is a five wire interface commonly found on many PC soundcards. It is now also popular in many portable devices. This DAI has a reset line and

quartus使用串口IP模块

烈酒焚心 提交于 2019-12-03 11:40:30
在quartus平台中使用串口模块的IP,需要使用到platform designer软件来实现。 1、在quartus界面调出IP Catalog界面。 2、在IP catalog中搜索UART,找到RS2323模块,并双击打开,选择合适的路径和存放。 3、使用该模块若不搭建nios软核,则使用streaming。 在右上角电机Block Symbol或者在菜单选择View->Block Symbol打开模块符号。 4、串口配置了波特率,其自动配置的参数与时钟有关,因此需要加入时钟模块,告知系统输入时钟为多少。 操作如下: 5、打开系统连接的界面,为其添加时钟输入模块。 6、在IP搜索栏搜索clock,双击选择的模块添加时钟模块,输入模块。 7、根据板载资源,设置时钟的参考时钟。 8、连接时钟模块和串口模块的clk和reset。 9、点击Generate HDL生成模块。 10、在quartus中添加生成的sys系统。 11、从platform designer生成模块实例将实例拷贝到添加到quartus的顶层文件中,添加写数据和读数据的时序。 这里只测试一下串口发送数据的功能,接收数据的操作基本是一样的。 12、在platform designer查看串口模块发送数据的时序。 同理在这里一样可以查看到接收数据的时序。 需要注意的是,时序中的数据其实是在to_uart

FPGA--UART串口通信

心不动则不痛 提交于 2019-12-03 01:32:25
一,串口相关知识 UART 通信 UART 首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是 7 个或 8 个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶校验,UART 就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。在接收过程中, UART 从消 息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART 传输时序如下图所示 : 串口通讯4根线:Vcc ,Gnd , Tx , Rx;TX-TTL发送端;RX--TTL接收端; 比特率:9600bps 就是每秒中传输9600bit; 串行通信的分类: 1、按照数据传送方向,分为: 单工:数据传输只支持数据在一个方向上传输; 半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口。 全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。 2、 按照通信方式 ,分为: 同步通信:带时钟同步信号传输。比如:SPI,IIC通信接口。 异步通信:不带时钟同步信号。比如:UART(通用异步收发器),单总线。 在同步通讯中

[现代操作系统] I/O 设备

匿名 (未验证) 提交于 2019-12-03 00:29:01
RAID CD-ROM ģʽ ģʽ, X Windows System ˼· CPU zh 如磁盘, 硬盘, 软盘, 常作为辅助存储器. 磁记录, 根据每个 小磁针 的极性记录 0, 1. 写的时候, 改变电流方向利用电流的磁效应感性去磁性. 读的时候, 利用电磁感应判断极性. 磁盘被组织成柱面, 每个柱面包含若干磁道, 磁道数与垂直堆叠的磁头个数相同. 磁道被分成若干扇区. 重叠寻道 (overlapped seek): 控制器同时操控多个驱动器进行寻道. 大多数磁盘都有一个虚拟的几何规格呈现给 OS, 控制器可以将虚拟的几何规格映射到实际的物理位置 RAID (Redundant Array of Inexpensive Disk) CPU 性能提升快于磁盘, 出现 并行 I/O RAID 背后的思想是将一个装满了的磁盘盒子安装到计算机上, 用 RAID 控制器替换磁盘控制器卡, 将数据复制到整个 RAID 上, 然后继续常规的操作 对 RAID 的并行操作, 分为 0 级到 5 级 RAID. 层级这个名称或许用词不当, 这里没有分层结构, 只是不同的组织形式而已 * 0 * 组成: 将 RAID 模拟的虚拟单个磁盘划分成 Stripe , 每个 stripe 带有 K 个扇区, 0 ~ k-1 扇区为 条带 0, k ~ 2k-1 为条带 1… 注意还未引入冗余,

SPI接口

匿名 (未验证) 提交于 2019-12-03 00:27:02
注:本博文大部分内容由华清远见彭丹老师整理! 一、SPI总线协议 1. SPI特点 1.1 采用主-从模式(Mater-Slave) SPI 规定了两个 SPI 设备之间通信必须由主设备 (Master) 来控制次设备 (Slave). 一个 Master 设备可以通过提供 Clock 以及对 Slave 设备进行片选 (Slave Select) 来控制多个 Slave 设备, SPI 协议还规定Slave 设备的 Clock 由 Master 设备通过 SCK 管脚提供给 Slave 设备,Slave 设备 本身不能产生 或控制 Clock, 没有 Clock 则 Slave 设备不能正常工作。 1.2 采用同步方式(Synchronous)传输数据 Master 设备会根据将要交换的数据来产生相应的时钟脉冲(Clock Pulse), 时钟脉冲组成了时钟信号(Clock Signal) , 时钟信号通过 时钟极性 (CPOL) 和 时钟相位 (CPHA) 控制着两个 SPI 设备间何时数据交换以及何时对接收到的数据进行采样, 来保证数据在两个设备之间是同步传输的. 关于时钟极性, 时钟相位名词含义下面会有解释。 1.3 数据交换(DataExchanges) SPI 设备间的数据传输之所以又被称为数据交换, 是因为 SPI 协议规定一个

FIFO

匿名 (未验证) 提交于 2019-12-03 00:11:01
FIFO是一种先入先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常方便,但缺点是只能顺序的写入数据、读出数据,其内部地址是由内部读写指针自动加1完成,不能像普通存储器那样由地址线读取或者写入某个地址。 FIFO的分类根据FIFO工作的时钟域,分为同步FIFO和异步FIFO。同步FIFO是指读写时钟为同一时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟相互独立。 FIFO设计的难点在于怎么判断FIFO的空满状态。为了保证数据正确的写入和读出,而不发生溢出或读空的状态出现,必须保证FIFO在满的情况下,不能进行写操作。在空的状态下不能进行读操作。 同步FIFO的实现代码: 1 module fifo( //信号定义---读、写、data_in,data_out,clk,复位,空,满 2 input [7:0] datain, 3 input rd,//读 4 input wr,//写 5 input rst, 6 input clk, 7 output [7:0] dataout, 8 output full, 9 output empty, 10 ); 11 12 wire [7:0] dataout;//输出信号定义为wire类型 ,输入默认为wire 13 reg full_in,empty_in; (空满寄存器) 14