《基于FPGA的现代数字电路设计》-第9章_第1页
《基于FPGA的现代数字电路设计》-第9章_第2页
《基于FPGA的现代数字电路设计》-第9章_第3页
《基于FPGA的现代数字电路设计》-第9章_第4页
《基于FPGA的现代数字电路设计》-第9章_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9.1基于TLC549的数据采集电路设计9.1.1设计要求本节要求设计一个16路的数据采集系统,使用的模数转换器的型号为TLC549,模拟量多路开关型号为CD4067(16路选1),用4个按键选择采样某一路信号,并在数码管上显示该路信号的电压值。采集系统框图如图9.1所示,它由一个16路选1模拟量多路开关CD4067、模数转换器TLC549和由FPGA实现的控制逻辑模块组成。其工作过程是将1~16路模拟数据通过外部接口输入到多路开关,多路开关依次循环选择1路模拟信号送入模数转换器,将模拟信号转换为数字信号,存放在为每一路信号准备的寄存器中。下一页返回9.1基于TLC549的数据采集电路设计

用FPGA设计控制逻辑功能有两个,一是控制多路开关的循环选通,使得1~16路模拟信号能分时选通依次进入模数转换器,二是控制模数转换器的转换时序,使其能精确地实现采集任务。9.1.2必备知识1.模数转换器TLC549TLC549是TI公司生产的一种低价位、高性能的8位模数转换器,它以8位开关电容逐次逼近的方法实现A/D转换,其转换时间小于17μs,最大转换速率为40kHz,内部系统时钟频率为4MHz,电源为3~6V。它能方便地采用三线串行接口方式与各种微处理器连接,构成各种廉价的测控应用系统。TLC549引脚如图9.2所示。上一页下一页返回9.1基于TLC549的数据采集电路设计

TLC549器件工作时序如图9.3所示,当CS变为低电平后,TLC549芯片被选中,同时前次转换结果的最高有效位MSB(A7)自DATAOUT端输出,接着要求自I/OCLOCK端输入8个外部时钟信号,前7个I/OCLOCK信号的作用是配合TLC549输出前次转换结果的A6~A0位,并为本次转换做准备:在第4个I/OCLOCK信号由高至低跳变之后,片内采样/保持电路对输入模拟量开始采样,第8个I/OCLOCK信号的下降沿使片内采样/保持电路进入保持状态并启动A/D开始转换。转换时间为36个系统时钟周期,最大为17μs。直到A/D转换完成前的这段时间内,TLC549的控制逻辑要求,或者CS保持高电平,或者I/OCLOCK时钟端保持36个系统时钟周期的低电平。上一页下一页返回9.1基于TLC549的数据采集电路设计

由此可见,在自TLC549的I/OCLOCK端输入8个外部时钟信号期间需要完成以下工作:读入前次A/D转换结果;对本次转换的输入模拟信号采样并保持;启动本次A/D转换开始。2.多路开关CD4067CD4067相当于一个单刀八掷开关,开关接通哪一通道由输入的4位地址码ABCD来决定。INH是禁止端,当“INH”=1时各通道均不接通。此外,CD4051还设有另外一个电源端VEE,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰峰值达15V的交流信号。幅度范围为-5~+5V的模拟信号。上一页下一页返回9.1基于TLC549的数据采集电路设计

9.1.3设计方案采集系统的控制逻辑由FPGA芯片实现,完成两种控制功能,一是控制CD4067电路的通道选择,用16进制计数器控制CD4067的16路模拟信号分时循环输入;二是根据TLC549器件工作时序的要求设计输出信号控制TLC549器件,保证转换的字节数据被正确采集。根据TLC549器件数据手册,TLC的clock最大为1.1MHz,本设计中的clock为1MHz,每个clock时钟周期为1

μs,采集一个字节需要8

μs,加上等待时间1

μs,每个字节的采集时间为9

μs,由于TLC549器件的最长转换时间为17

μs,这里转换时间取17

μs,这样TLC549器件每转换一个字节数据共需要26

μs时间。上一页下一页返回9.1基于TLC549的数据采集电路设计

这里设计一个米利型状态机处理整个信号采集过程,既控制TLC549的采集时序,又控制CD4067的采集通道转换,是整个设计的核心。根据TLC549手册要求的采集时序分成两个状态,一个是数据采集状态,一个是模数转换状态,由一个输入时钟为1μs的26进制的计数器timer_26负责两个状态的转换。由TLC549时序得知片选信号CS变低后,I/OCLOCK开始正跳变的最小时间间隔1.4μs以及从CS变低到DATAOUT线上输出数据的最短时间1.2μs,所以在软件设计时应该重点考虑CS引脚由高变低与CLK引脚由低变高之间的时间间隔应至少大于1.4μs,这样才能够正确采样到第1位数据(A7)。由于每个机器周期是1μs,所以需在第二个时钟周期采样,这样这个时间间隔大于1.4μs。上一页下一页返回9.1基于TLC549的数据采集电路设计

9.1.4程序设计依据设计思路编写出的程序代码如下:上一页下一页返回9.1基于TLC549的数据采集电路设计

9.1.5程序编译并测试根据图9.1设计多路数据采集电路的电路板,将CD4067和tlc549安在一块板子上,使16路模拟信号接入CD4067。将程序在AlteraQuartusⅡ编译通过,给各个信号分配引脚,再编译通过,下载到FPGA开发板上。将输出引脚安排到开发板排线引脚上,再用杜邦线将CD4067和tlc549的受控引脚连接到开发板上,调试多路数据采集电路的性能,使结果和我们预期的想法一致。上一页返回9.2IIC总线接口电路设计9.2.1设计要求依据开发板,按动开发板键的四个按键,要求FPGA能把数据写入EEPROMAT24C04的某个地址,并能将写入的数据读回FPGA,同时在数码管上显示。9.2.2必备知识1.AT24C04的基本介绍AT24C04是Atmel公司的一款IIC串行EEPROM,其工作电压范围宽,VCC工作在1.7~5.5V,兼容51单片机的TTL电平。AT24C04芯片引脚分布如图9.4所示。下一页返回9.2IIC总线接口电路设计在器件引脚中,A0、A1、A2为芯片的地址输入引脚,AT24C04硬线寻址用A2和A1输入,而且总计四个4Kb器件可设置在一条总线系统上,A0脚是不连接的。SCL和SDA为IIC总线接口的串行时钟线与数据线。WP为写保护引脚,当芯片写保护时,WP为高电平,只能对器件进行读操作,不能改写内部数据,从而起到硬件保护作用;当WP为低电平时,才能实现对器件进行写操作。芯片引脚少,外围电路简单,减少了布局布线空间。本设计中AT24C04芯片的电路连接图如图9.5所示。SCL和SDA引脚接FPGA引脚。上一页下一页返回9.2IIC总线接口电路设计2.IIC的控制时序使用对AT24C04的控制,实质是建立与EEPROM芯片的IIC通信。相比RS232和SPI通信而言,IIC的时序要复杂一些。IIC系统由一条串行数据线SDA和一条串行时钟线SCL组成。主机按一定的通信协议向从机寻址和进行信息传输。在数据传输时,由主机初始化一次数据传输,主机使数据在SDA线上传输的同时还通过SCL线传输时钟。信息传输的对象和方向以及信息传输的开始和终止均由主机决定。每个器件都有一个唯一的地址,而且可以是单接收的器件或者可以接收也可以发送的器件。发送器或接收器可以在主模式或从模式下操作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。IIC总线在传送数据过程中共有三种类型信号,分别是:开始和结束信号、确认总线上数据有效性的时序和应答信号。上一页下一页返回9.2IIC总线接口电路设计3.总线上数据传输格式一般情况下,一个标准的IIC通信由四部分组成:开始信号、从机地址传输、数据传输、停止信号。工作过程是:由主机发送一个开始信号,启动一次IIC通信;在主机对从机寻址后,再在总线上传输数据。IIC总线上传送的每一个字节均为8位,首先发送的数据位为最高位,每传送一个字节后都必须跟随一个应答位,每次通信的数据字节数是没有限制的;在全部数据传送结束后,由主机发送停止信号,结束通信。上一页下一页返回9.2IIC总线接口电路设计4.IIC总线寻址为了消除IIC总线系统中主控器与被控器的地址选择线,最大限度地简化总线连接线,IIC总线采用了独特的寻址约定,规定了开始信号后的第一个字节为寻址字节,用来寻址被控器件,并规定数据传送方向。在IIC总线系统中,寻址字节由被控器的七位地址位(它占据了D7~D1位)和一位方向位(D0位)组成。D0位为0时表示主控器将数据写入被控器,D0为1时表示主控器从被控器读取数据。主控器发送开始信号后,立即发送寻址字节,这时,总线上的所有器件都将寻址字节中的7位地址与自己器件地址比较。如果两者相同,则该器件认为被主控器寻址,并发送应答信号,被控器根据读写位确定自身是作为发送器还是接收器。上一页下一页返回9.2IIC总线接口电路设计主器件作为被控器时,其7位从地址在IIC总线地址寄存器中给定,为纯软件地址。IIC总线系统中,没有两个从机的地址是相同的。5.主机向从机读写1个字节数据的过程主机向从机写1个字节数据的过程如图9.9所示,主机要向从机写1个字节数据时,主机首先产生START信号,然后紧跟着发送一个从机地址,这个地址共有7位,紧接着的第8位是数据方向位(R/W),0表示主机发送数据(写),1表示主机接收数据(读),这时候主机等待从机的应答信号(A),当主机收到应答信号时,发送要访问的地址,继续等待从机的应答信号,当主机收到应答信号时,发送1个字节的数据,继续等待从机的应答信号,当主机收到应答信号时,产生停止信号,结束传送过程。上一页下一页返回9.2IIC总线接口电路设计主机向从机读1个字节数据的过程如图9.10所示,主机在从机读1个字节数据时,主机首先产生开始信号,然后紧跟着发送一个从机地址,注意此时该地址的第8位为0,表明是向从机写命令,这时主机等待从机的应答信号(A),当主机收到应答信号时,发送要访问的地址,继续等待从机的应答信号,当主机收到应答信号后,主机要改变通信模式(主机将由发送变为接收,从机将由接收变为发送),所以主机发送重新开始信号,然后紧跟着发送一个从机地址,注意此时该地址的第8位为1,表明将主机设置成接收模式开始读取数据,这时主机等待从机的应答信号,当主机收到应答信号时,就可以接收1个字节的数据,当接收完成后,主机发送非应答信号,表示不再接收数据,主机进而产生停止信号,结束传送过程。上一页下一页返回9.2IIC总线接口电路设计9.2.3设计方案FPGA和外接设备以IIC总线进行连接,FPGA为主设备,AT24C04为从设备,IIC总线的控制器工作在FPGA中。IIC控制器的主要作用是发送控制命令到AT24C04,读写从设的数据。主要包括三部分:控制状态机模块、写过程和读过程模块。其中读、写过程的时序遵守IIC总线通信控制协议。1.写过程(1)FPGA在检测到总线空闲时,发送信号占用总线。(2)FPGA给总线发送一个地址字节,其中包括7位地址信号和l位写信号(R/W信号为0)。上一页下一页返回9.2IIC总线接口电路设计(3)AT24C04检测到总线上的地址与自己的地址相同时,发送一个应答信号。(4)FPGA收到应答信号后发送第一个数据字节。(5)AT24C04收到数据字节后发送应答表示继续发送或其他操作。(6)重复(4)、(5),FPGA发送完全部数据后发送一个停止位P,结束写过程并释放总线。上一页下一页返回9.2IIC总线接口电路设计2.读过程(1)FPGA在检测到总线空闲时,发送s信号占用总线。(2)FPGA给总线发送一个地址字节,其中包括7位地址信号和l位写信号(R/W信号为1)。(3)外设检测到总线上的地址与自己的地址相同时,发送一个应答信号。(4)FPGA收到应答信号后释放总线,开始接收第一个数据字节。(5)外设收到数据字节后发送应答信号表示继续发送或其他操作。(6)重复(4)、(5),FPGA接收完全部的数据后发送一个停止位,结束写过程并释放总线。上一页下一页返回9.2IIC总线接口电路设计3.控制状态机根据IIC总线通信控制协议,IIC总线有六个固定的状态,它们为空闲、开始、写数据、读数据、应答、停止,如图9.11所示。(1)空闲状态:当无数据传输时,IIC总线处于空闲状态。(2)开始状态:当收到开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论