基于ARM的数字调压控制系统设计与实现
成本,缩小电路板的面积。由于核心板上拥有DDR2内存,属于高速电路,因此内存电路是核心板设计的重点和难点。核心板的硬件结构如图2所示。由图可见,处理器外挂两条内存,两条内存共享处理器的时钟线、数据线和地址线,为了保证系统稳定性,两条内存到处理器的走线采用T型连接设计,并且等长布线。为了避免对高速电路的影响,晶振应避开高速电路,尽可能的靠近处理器的时钟引脚。电源管理模块负责对核心板上所有器件的供电管理。
2.2 底板设计
本设计中底板采用2层板设计,底板上主要包括了外围设备接口、数模信号转换模块和插槽,外围接口电路包括系统复位电路、串口电路、SD卡接口电路、LCD触摸屏接口电路、USB接口电路、电源开关电路和用户自定义按键,底板上的接插槽作为接口与核心板连接,底板的系统结构框图如图3所示。数模转换模块主要由高精度数模转换芯片组成,使用串行接口连接。底板上所有部件接口引脚均连接至接插槽上,通过插槽与核心板连接,这样有利于后期功能的扩展和系统的裁剪,同时有效的降低了开发成本。
3 PCB的板级设计与仿真
当完成系统的硬件设计和原理图绘制之后,开始进行PCB电路板设计,本系统的PCB设计使用Cadence 16.3进行。进行PCB板级设计之前应做好如下准备工作:做好元器件的模型库和元器件的封装,设计PCB板。根据前文所述,本系统硬件采用底板加核心板的设计方法,因此要根据实际需求的尺寸分别设计底板和核心板的PCB板,设计板子的叠层,根据需求核心板设置为6层板,底板设置为2层板,之后进行布局和布线操作。由于本系统中内存和处理器之间的电路属于高速电路,因此需要对内存的时钟线及数据线进行仿真,来验证布线的正确性,仿真使用Allegro PCB SI GXL进行。
DDR时钟线是内存电路中最重要的线路,布线时采用差分对走线。仿真时打开本设计的PCB文件,首先建立DDR时钟的差分对,之后进行仿真前的参数设定,包括板子的叠层设置、差分阻抗设置、测量差分缓冲延迟及为内存和处理器分别分配SI模型。由于Cadence PCB SI在仿真过程中使用的是DML模型,因此在仿真前需要将器件的IBIS模型进行验证,没有错误后转换成DML模型,然后添加到模型库的路径之下。在测量差分缓冲延迟时,在处理器模型的引脚列表中找到DDR时钟的两个引脚,并进行引脚的耦合设置。上一步完成之后,开始进行内存时钟差分对的仿真。首先设置互连模型参数,使用SigXplorer PCB SI GXL进行拓扑的提取。打开约束管理器,选中DDR时钟的差分对,提取其拓扑结构,如图4所示。
然后对相关仿真参数和差分驱动器激励进行设置,设置完成后使用无损互连分析对内存时钟差分对进行仿真。波形的眼图如图5所示。
使用如上同样的方法对内存数据线进行波形图和波形的眼图仿真,依据得到的眼图判定布线是否合理得当,若眼图较乱则需要调整布线,之后再进行仿真验证。
4 ARM数字调压控制系统的软件设计
ARM数字调压控制系统使用Linux操作系统,系统应用程序软件在Qt 4.0环境下开发。系统启动后自动运行应用程序,其主界面如图6所示。界面中预置了固定电压输出按钮、步长调节按钮、微调按钮、复位按钮和输出校对按钮。程序中提供了两种不同的步进调节长度,步进可选为1 V或5 V步进。系统启动后默认为1V步进长度。按复位键后输出电压被清零。
本系统的软件流程图如图7所示。当使用本系统进行数字调压控制的时候,首先启动本系统,待系统正常上电启动后,系统自动运行控制应用程序,用户通过可视化的输入界面选择需要输出的电压值,用户选择后应用程序调用底层驱动程序将指令数据传递给处理器进行处理,处理器接到调用请求后将指令数据通过同步串行接口发送给数模信号转换模块,转换结果输出给正弦波调压模块以得到所需的电压值;同时也可通过up、down调节按钮对输出电压进行微调,直到得到理想的输出值为止。复位键用来对调压模块进行复位,使得输出端压降为0 V。数模信号转换过程中使用的公式如下:
其中,n为转换精度,此处等于12;D为二进制指令代码,12位长度;AVDD为参考电压值,等于5 V;VOUT为调制输出电压值,范围是0~5 V。
5 实验结果
对于本系统的测试分两步进行。首先将家用节能灯泡连接至正弦波调压模块的输出端,检查连接无误后打开系统开关,上电启动系统。首先按复位键,将输出清零,此时灯泡处于熄灭状态,之后连续按下“up”键将看到灯泡逐渐变亮,相反按下“down”键灯泡逐渐变暗直到完全熄灭。本步实验的目的是进行系统的功能验证,即验证本系统是否存在调压功能。本次试验结束后,
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)