合肥学院
嵌入式系统设计实验报告
(20 13- 2014第2学期)
专业:______11自动化卓越班_________ 实训项目:基于S3C2440的项目实训
实训时间:___2014___年__6___月_27_ 日实训成员:__ _____ _
___
__
指导老师:___________干开峰__ ________
电子信息与电气工程系
2014年4月制
一、实训目的
1、掌握嵌入式系统设计的基本方法。
2、熟悉嵌入式系统设计流程。
3、能够按照需求完成嵌入式系统总体设计。
二、实训内容
本项目实训要求完成“数据采集系统”,从前端数据采集到后端触摸屏显示控制,包括硬件电路的连接、bootloader 和内核移植、根文件系统建立、设备驱动的编写以及 QT编程实现。
三、实训设备
硬件:micro2440 开发板、AD7705采集板
软件:Linux操作系统
四、实训设计方案
4.1 项目功能需求分析
1、功能需求
(1)基于SPI通信,完成AD7705和micro2440开发板硬件连接。
(2)完成基于micro2440的bootloader、内核移植和根文件系统建立。
(3)完成基于SPI协议的AD7705驱动程序设计。
(4)基于QT编程实现数据采集和显示功能。
2、性能需求
主控制器能够对AD7705传来的信号实现数据采集和显示功能。
4.2 方案设计
4.2.1 项目的总体设计
系统主要由电压信号、A/D转换器、S3C2440 控制器和LCD 控制器组成,结构图如图1所示。
其中,电压信号可以是压力传感器、温度传感器等输出信号;A/D转换器是数字化的关键部件,决定了整个系统的精度;主控制器由S3C2440 构成;带触摸屏的LCD 控制器可以实现系统参数设置和实时显示最新状态。
图1 系统结构图
在本次设计中,首先电压信号传给数据采集模块(AD7705)。
数据采集模块接收到信号后进行放大滤波并进行AD转化变成数字信号,之后数据采集模块把转化而来的数字信号传给S3C2440控制器。
S3C2440控制器将AD7705处传来的数据进行处理,并传送给带触摸屏的LCD 控制器将数据显示出来。
4.2.2 项目的硬件设计
1、S3C2440 控制器
S3C2440 是三星公司推出的采用RISC结构的16/32位微处理器。
主频400MHZ,最高频率可达533 MHz,是高性能和低功耗的硬宏单元。
S3C2440 采用了ARM920T的内核,0.13um 的CMOS 标准宏单元和存储器单元。
ARM920T 实现了MMU,AMBA BUS和Harvard 高速缓冲体系结构,具有独立的16KB指令Cache和16KB数据Cache,每个都是由具有8字长的行组成。
通过提供一套完整的通用系统外设,S3C2440 减少整体系统成本和无需配置额外的组件,是一款高速、高性能、低功耗的微处理器,特别适合于工业控制、通信设备、汽车电子以及医疗设备等系统的应用。
2、数据采集芯片AD7705
AD7705 是应用于低频测量的2/3 通道的模拟前端。
该器件可以接受直接来自传感器的低电平的输入信号,然后产生串行的数字输出。
利用Σ-Δ转换技术实现了16 位无丢失代码性能。
选定的输入信号被送到一个基于模拟调制器的增益可编程专用前端。
片内数字滤波器处理调制器的输出信号。
通过片内控制寄存器可调节滤波器的截止点和输出更新速率,从而对数字滤波器的第一个陷波进行编程。
其串行接口可配置为三线接口。
增益值、信号极性以及更新速率的选择可用串行输入口由软件来配置。
该器件还包括自校准和系统校准选项,以消除器件本身或系统的增益和偏移误差。
AD7705的引脚图如图2所示。
图2 AD7705的引脚图
3、接口电路
S3C2440 与AD7705 的接口连接图如图3所示:
图3 数据采集接口连接图
可以根据S3C2440和AD7705的引脚定义,可知引脚对应:
SCLK——SPICLK1——27;
DIN——SPIMOSI1——26;
DOUT——SPIMISO1——25;
DRDY——SNSSSPI——28;
CS——GND——4;
REST——VCC——2。
4.2.3 项目的软件设计
1、主控模块(S3C2440控制器)
主控模块需要实现AD7705处传来的数据进行处理,并传送给带触摸屏的LCD将数据显示出来。
系统主程序流程图如图4所示。
图4 系统主控模块程序流程图
2、数据采集模块(AD7705)
AD7705驱动程序流程图如图5所示。
图5AD7705驱动程序流程图
4.3 完成时间规划
2014.5.30~2014.6.5:查找资料,了解S3C2440和AD7705的引脚定义,功能使用以及特点,并能够根据S3C2440的SPI特点及AD7888的工作原理确定接口连接。
2014.6.6~2014.6.9:bootloader 和内核移植、根文件系统建立、设备驱动的编写以及QT编程实现,完成对电源电压的数据采集。
2014.6.9:完成设计项目报告。
五、实训项目实现
1、Uboot下载
2、启动内核
3、测试
设置节点:mksmod /dev/ad7705 c 231 0
数据采集界面:
GT显示界面:
六、实训小结
本次实训是嵌入式课程的最后一个实验,所应用的软件平台就是前几个实验所搭建的平台,bootloader、内核移植和根文件系统建立。
在上述基础上进行的SPI通信及QT编程实现的数据采集和显示功能。
刚开始的系统因为有点问题,所以后期换了开发板,在前面的基础上,只要输入相应的程序即可实现数据采集和显示功能。
实训期间也产生了好多问题,例如输错了程序怎么都返不回上一级;ubooot不能加载进去;数据不能实时采集,有时不管怎么改变ad7705模块电阻的阻值,数值都是4v等,还好都在老师和同学以及自己的摸索下解决了。
不过,正是因为这些问题的存在,才让我们发现了自身的问题,使我们都共同进步。
总的来说,本次实训还是比较成功的,无论是个人动手能力还是团队协作能力都得到了很好的锻炼。
对嵌入式LINUX的各种操作和应用的有所掌握以及小组的成员团结合作,共同讨论分析该如何去做这个项目设计以及在实际操作中,分工合作等等都有所收获。
本次实训在让我们体会到了实训的艰辛的同时,也让我们体会到成功的喜悦和快乐,更使我们更加清楚以后的发展及学习的方向。