※※※※※※※※※ ※2011级学生EDA ※ ※※
※※※※
课程设计
※ ※
※
※※※※
EDA课程设计报告书
课题名称 VHDL语言的A/D采样控制器 姓 名 学 号 院、系、部 专 业 指导教师
2013年11月20日
** **
物理与电子科学系 电子信息科学与技术
**
一、设计任务及要求: 设计任务:1、利用ADC08138高速串行接口IO配置8个通道的输入多路转换器具有电压参考及跟踪保持功能。 2、用VHDL程序来控制ADC08138的主要程序 要 求: 首先进行预设计,根据设计的任务要求,先确定设计方案,然后进行硬件电路的初步设计,在计算机上画出硬件电路图,在老师的指导下进行修正硬件电路图,并对所涉及的参数进行计算。 在确定硬件的基础上,要进行软件的总体设计,包括软件主流程的设计以及各子程序的设计,同时,要写出详细的操作说明。然后进入硬件的调试及编程工作,设计组内的同学可根据任务分工,有调试硬件各功能模块的,有进行整体程序的编制的,各模块的编制过程中要注意资源的衔接。 最后进入联机调试,联机调试的原则也要采用分步走的原则,各个功能模块要逐步套入,通过一个再增加一项功能,从而达到设计的总体要求,不要上来编制个最大的程序,最后无法查找错误。 最后写出设计报告。 指导教师签名: 年 月 日 二、指导教师评语: 指导教师签名: 年 月 日 三、成绩
指导教师签名: 年 月 日
目 录
一、绪 言............................................................................. 错误!未定义书签。 二、系统设计....................................................................... 错误!未定义书签。
2.1 ADC08138介绍 ...................................................... 错误!未定义书签。 2.2 软件流程图............................................................................................... 3 三、VHDL程序设计 .......................................................... 错误!未定义书签。 四、计算机仿真分析............................................................................................. 6 五、结束语............................................................................................................. 6 六、参考文献......................................................................................................... 7
一、绪言
现场可编程门阵列FPGA(Field Programmable Gate Array)是80年代中期在
PAL、GAL等逻辑器件的基础之上发展起来的一种可编程逻辑器件,特点是高集成度、高速和高可靠,开发周期短,投资风险小,产品上市快。VHDL是目前通用的硬件描述语言(HDL,Hardware Description Language)之一,可用来描述一个数字电路的输入、输出以及相互间的行为与功能。其特有的层次性———由上而下的结构式语法适合大型项目的设计,并且修改方便、移植性强,其源代码已成为一种输入标准,可用于各种不同的EDA工具。使用VHDL来设计数字系统已成为当今电子设计技术的一种趋势。由于FPGA本质上仍是数字逻辑电路,当需要 控制模拟量时,就必须在外围增加A/D 转换,进行相应控制。与微处理器或单片机相比,FPGA更适用于直接对高速A/D器件的采样控制。许多文献介绍了并行工作的A/D器件与FPGA接口,本文以高速串行I/O A/D转换器ADC08138与ALTERA公司的EP1K30接口为例,介绍了基于VHDL语言用FPGA来控制串行A/D的电路设计技术。
二、系统设计
2.1 ADC08138介绍
ADC08138是有8通道的8位逐次逼近式串行I/O A/D转换器,模拟输入可配置
成单端、差分和准差分模式。ADC08138能提供2.5V带隙派生基准电压,串行数据联系只需要很少的I/O口,不需要零点及满量程调节,带有模拟输入采样保持器及8路输入转换器,功耗低(最大值20mW)、转换时间快(f=1 MHz,8us最大值)。广泛应用于数字传感器、过程控制、监测等领域。
用FPGA设计的采样控制器ADPT与ADC08138的接口电路如图1所示。/CS为AD08138的片选信号。转换开始时为低电平。
1
图1 采样控制器与ADC08138接口控制图
每个时钟上升沿数据从DI输入到其内部的MUX地址转换寄存器。出现在线上的第一个逻辑“1”为启动位“START”。启动位后的第2位到第4位分别为SGL/DIFF、SELECT CIT 1、SELECT BIT 0。由它们来决定ADC08138的工作方式。
其中SGL/DIFF与COM决定是按单端、差分还是准差分方式进行工作。单端输入方式时COM接地;差分输入方式限制在相邻的通道,而不能分别与其它通道作差分方式,差分输入时可以选择相反极性。COM可用于准差分输入,在这种模式下,该引脚的电压可看作其它输入通道的“ - ”输入,这电压可以不一定是模拟地,准差分输入可转换任何模拟输入电压与公用端电压之间的差值。ODD/SIGN决定奇偶通道的工作和符号。如单端方式时0为偶数通道,1为奇数通道。具体定义如表1所示。
当SARS为高电平时,表示正处于转换状态,这时DI线无效。内部自动加入1/2个时钟后开始采样,每个时钟下降沿数据送至DO端,D0为数据输出端。经过8个时钟周期,转换结束,SARS为低电平。
/SE为移位方式控制端,高电平时,移出的数据即转换的结果,先是高位字节(MSB);低电平时,先移出低字节(LSB)。
VrefOUT 提供2.5V的带隙基准电压,这电压不随温度、电源电压、负载电流的变化改变,可以与VrefIN直接相连,为模拟输入提供0至2.5V的电压范围CH0至CH7为8个输入模拟通道。
2
表1 ADC08138MUX地址
单端MUX模式 MUX地址 模拟单端通道号 SY-SGLODD SELECT 0 1 2 3 4 5 6 ART /DI/SI1 0 F GN 1 1 0 0 0 + 1 1 0 0 1 + 1 1 0 1 0 + 1 1 0 1 1 + 1 1 1 0 0 + 1 1 1 0 1 + 1 1 1 1 0 + 1 1 1 1 1 差分MUX模式 MUX地址 模拟差分通道对 SY-SGLODD SELECT 0 1 2 ART /DI/SI1 0 0 1 2 3 4 5 F GN 1 0 0 0 0 + - 1 0 0 0 1 + - 1 0 0 1 0 + - 1 0 0 1 1 1 0 1 0 0 - + 1 0 1 0 1 - + 1 0 1 1 0 - + 1 0 1 1 1
7 COM + - - - - - - - - 3 6 7 + - - + 2.2 软件流程图
3
图 2 软件流程图
三、VHDL程序设计
由于ADC08138的输入配置可以用软件来控制,在每个转换中它可以随需要来修改。一个通道可以在一次转换中作为单端,以地为参考的输入模式,在另一次转换中又可配置为差分通道的一部分。
4
图1中ADPT部分为用VHDL程序来实现的对ADC08138控制。其中CSAD为低电平时ADPT启动。CLKAD由外部给出时钟频率,经过分频后通过CLK提供给ADC08138工作频率。ADPT通过CS对ADC08138片选,同时和输出的DI一起控制着ADC08138进行通道地址转换,由ADDR0-ADDR3输出转换通道地址。当接收到ADC08138的SARS管脚由低到高的电平后,DO输入串行数据。经过一段时序后,从DOAD0-DOAD7并行输出,同时ADOV由低变为高电平,发出转换完毕的信号。
ADPT部分主要由分频器、通道地址产生器、PISO(并行输入串行输出)、SIPO(串行输入并行输出)等组成,原理图如图2所示。其中分频器由frqcomponent及frq1 component组成,通道地址产生器由adcntr component构成,PISO、SIPO分别由adoutcomponent及adin component 来实现
图 3 采样控制器ADPT结构图
分频器实质上就是一个计数器。若时钟源为10MHz,,则用一个自由计数器来
5
产生所需的频率即可。
这里是用双进程的有限状态机(FSM)来设计通道地址产生器。当addr< ="0000"时表示没有通道被选择,ADC08138没有工作。通道1-8对应着CH0-CH7。其中"control"为时序进程:"circulation"组合进程,如果使用差分输入模式,只需修改相应的地址即可。FMS的优点是VHDL综合器易于优化,容易形成性能良好的时序逻辑模块,容易读懂修改。
PISO(并行输入串行输出)模块及SIPO( 串行输入并行输出)模块可参见文献[3]。需注意的是PISO当CLK.CS=ˊ1ˊ时加载通道地址。SIPO 当sars=ˊ1ˊ时开始计数,这和ADC08138的工作时序是一致的。
四、计算机仿真分析
用Max+plusⅡ进行输出控制部分波形仿真如图4所示。由于ADC08138的转换
状态由SARS给出,数据由DO给出,图中给出了对frq1 component、adcntr component及adout component三个模块的组合进行仿真的结果,其中clk周期为100s。CSAD为低电平时ADPT开始工作。当CS由低到高跳变时,若要选通通道0,则将数据从DI 输入到其内部的MUX地址转换寄存器,如图中adpo2值为18,同时ADDR输出转换通道地址为1 。由图4可见,仿真波形与对ADC08138要求的控制相一致,达到了设计目的。
图 4 仿真波形图
五、结束语
本实验用于交流电机调速系统中的A/D转换部分。实验时另增加了显示模块,
显示结果验证了该控制程序的正确性。
用FPGA来实现控制电路有很多优点。不仅可进行任意次数的编程,而且可在
6
工作中快速编程。FPGA的集成度非常高,这样许多中规模集成电路和许多分离元件组合才能完成的功能可以用它来完成,使电路的体积减小、可靠性提高、成本下降。FP-GA的速度可以做的很高。ALTERA公司提供的芯片内部速度可达200MHz,时钟速度可达822MHz,并且管脚之间的延迟低于3.5ns。随着VHDL和Verilog HDL语言的迅速推广,FPGA的应用领域将会越来越广泛。
六、参考文献:
[1] 潘松,王国栋.VHDL 实用教程[M].成都:电子科技大学出版社,2001 [2] National Semiconductor Corporation.Nationalˊs Analong & Interface Products
Databook,2002
[3] 林明权.VHDL数字控制系统设计范例[M]北京:电子工业出版社,2003 [4] 黄正瑾,徐坚,章小丽等.CPLD系统设计技术入门与应用[M].北京:电子工业出版社,2002
附录1部分源程序
VHDL代码如下: Process( clk ) Begin
If clkˊevent and clk=ˊ0ˊthen Q< = q+1; End if; end process; Clk ad< =q(9);
这里输出的是ADC08138的典型频率10MHz,其极限值为1MHz。
实验的难点之一在于时序的配合上,每一次通道转换时都需要重新启动片选信
7
号。其中读数时先读取的是高字节。在实验中采用了如下程序: process(cs.ad,clk )
variable q:integer range 0 to 15; begin
If cs.ad=ˊ1ˊthen Clk.cs< =ˊ1ˊ; Q:=0;
Elsif clkˊevent and clk=ˊ0ˊ then If q < 15 then Clk.cs< =ˊ0ˊ; Q:=q+1; Else
Clk.cs< =ˊ1ˊ; Q:=0; End if; End if; End process;
通道地址产生器可用来实现所需的各种输入模式。以单端输入模式为例,VHDL代码如下:
Circulation:process(state) Begin
Case state is
When s0 = >adpo< ="00000"; Addr < =ˊ0000ˊ; Next.state< =s1;
When s1 = >adpo< ="11000";- - - ch0 Addr< ="0001"; Next.state< =s2;
When s2 = >adpo< ="11100";- - -ch1
8
Addr< ="0010"; Next.state< =s3;
When s3 = >adpo< ="11001";cch2 Addr< ="0011"; Next.state< =s4; ......
When others = >adpo< ="00000"; Next.state< =s0; End case;
End process circulation; Control:process(cs,clk.cs) Begin
If cs= ˊ1ˊthen state< =s0;
Essif clk.csˊevent and clk.cs=ˊ1ˊthen State< =next.state; End if;
End process control;
9
因篇幅问题不能全部显示,请点此查看更多更全内容