毕设-基于arm的数据采集系统的设计内容摘要:
作系统镜像存放在外部的 Nand Flash中,并从 Nand Flash启动,当处理器在这种模式下开电复位时,内置的 Nand Flash将访问接口控制器并引导代码自动加载到内部 SRAM并且运行。 之后 SRAM中的引导程序将操作系统镜像加载到SDRAM中运行。 启动后释放 4KB的 SRAM,以便用于其他用途。 mini2440 开发板的接口资源 硬件资源特性 [3] CPU处理器: 三星 S3C2440A,主频 400MHz,最高 可达 533Mhz; SDRAM内存:在板 64M SDRAM, 32bit数据总线 , SDRAM时钟频率高达 100MHz; 基于 ARM 的数据采集系统的设计 –4– Flash存储 ; 在板 256M/1GB Nand Flash,掉电非易失 (用户可定制 )64M/128M/256M/512M/1G在板 2M Nor Flash,掉电非易失,已经安装 BIOS; LCD显示板上集成 4线电阻式触摸屏接口,可以直接连接四线电阻触摸屏 , 标准配置为统宝 真彩 LCD,分别率 240x320,带触摸屏; 接口资源及时钟特点 1个 100M以太网 RJ45接口 (采用 DM9000网络芯片 ); 3个串行口 ; 1 个 主 USB接口 ; 1 个 从 USB B型接口 ; 1 个 SD卡存储接口 ; 1个 立体声音频输出接口,一路 语音输入 接口; 1个 10针 JTAG接口 ; 4个 User Led; 6组 USER buttons; 1个 PWM控制蜂鸣器 ; 1个 可变 电阻 器 ,用于 对 AD模数转换 进行 测试 ; 1个 I2C总线 AT24C08芯片,用于 对 I2C总线 进行 测试 ; 1个 20引脚 摄像头接口 ; 电源接口 (5V),带电源开关和指示灯 ; 1个 34引脚 ; 1个 40引脚 ; 12M无源晶振 ; 内部实时时钟(带后备锂电池 ); 基于 mini2440 的开发环境的搭建 搭建嵌入式交叉开发环境 嵌入式系统的开发一般采用“宿主机 目标机”交叉开发方式 [4]。 首先,利用宿主上丰富的资源以及良好的开发环境来进行开发和仿真目标机上的软件, 再 通过 HJTAG口,UTAR 口或者是以太网接口将生成的代码下载到目标 机上 进行运行。 本设计宿主机主要是使用装有 RedHat5 企业版 Linux 操作系统的 PC 机,而目标机就是 mini2440 开发板。 组成架构如图 所示。 基于 ARM 的数据采集系统的设计 –5– 宿 主 机P C 机目 标 机M i n i 2 4 4 0 开 发 板串 口 、 以 太 网 接 口 、 U S B 接 口 图 嵌入式开发交叉环境构架 在调试阶段会用到 NFS(虚拟文件系统) 方式挂载根文件系统,所以要设置好 NFS服务器,具体设置如下: (1) 设置共享目录: 运行命令 vi /etc/exports 编辑 NFS 服务的配置文件 (注意: 第一次 用 vi 打开时该文件 是没有内容的 ),添加 如下 内容: /opt/FriendlyARM/mini2440/root_qtopia *(rw,sync,no_root_squash) 其中: /opt/FriendlyARM/mini2440/root_qtopia 表示 NFS 共享目录 , 它可以 表示 同开发宿主机共享目录 root_qtopia 作为开发板的根文件系统通过 NFS 挂 载 ; *表示所有的客户 端 都可以挂 载 此目录; rw 表示挂接此目录的客户 端 对该目录有读写的权力; no_root_squash 表示允许挂接此目录的客户 端 享有 和主机 root 一样的权力 ; 通过命令启动和 停止 NFS 服务 : (2) 运行命令: /etc/ mount t nfs localhost: /opt/FriendlyARM/mini2440/rootfs_qtopia /mnt/ /opt/FriendlyARM/mini2440/rootfs_qtopia。 使用这个命令可以停止 nfs 服务: /etc/ 嵌入式开发的软件环境 本小节将解压安装开发学习过程所用到的全部源代码以及其他一些小工具,这包括: Linux内核源代码; 基于 ARM 的数据采集系统的设计 –6– 嵌入式图形界面 源代码 (分为 x86和 arm平台两个版本 ); ; Linux编程示例源代码; 用以启动 Linux的 bootloader之 vboot; 其他开源的 bootloader(适用于 Linux) 其他开源软件源代码 ; 目标文件系统映象制作工具 mkyaffsimage; 图形界面的 Linux logo制作工具 logomaker; 基于 ARM 的数据采集系统的设计 –7– 3 DS18B20 驱动 系统硬件整体设计 由于 DS18B20 是单总线数字器件, 同时 mini2440 提供了丰富的 I/O 接口资源 ; 另外, DS18B20 器件的供电范围是 ~, mini2440 开发板的 I/O 接口电压 是 ,所以也不存在电平不兼容的问题。 综合以上 可知 使用 mini2440 开发板结合 DS18B20 做温度采集系统 理论上行得通。 本设计硬件系统方面比较简单,系主要由两大部分组成:一是系统控制部分,二是温度采集部分。 其中系统控制部分又包括以下几个部分:处理器、复位模块、显示模块、外部接口模块等四大部分组成。 而温度采集本分主要由 DS18B20 电路组成。 具体组成如图 所示。 C P U 及 存储 器显 示 模 块复 位 模 块测 温 模 块其 他 接 口I / O 接 口 图 DS18B20 驱动的编写 硬件驱动大体可以分为一下几类:网络接口驱动,字符设备驱动,块设备驱动 [5]。 字符设备是指按字节来访问的设备,字符驱动就负责驱动字符设备,这样的驱动通常实现 read、 write、 open、和 close 的调用。 块设备是指按多数目字节进行访问的设备,该设备与字符设备的区别在于与内核的接口不同。 进行网络数据访问的接口设备就叫做网络接口设备 ,它一般通过套接字来实现。 Linux 用户一般是通过 操 作 设备文件来访问和操作各种设备的, 本设计 可以通过图 有一个深刻的认识。 所以用户想要使用 DS18B20 进行温度采集时,只需要对设备文基于 ARM 的数据采集系统的设计 –8– 件 ds18b20 进行打开、控制、读、写、关闭等一系列操作就可以控制 DS18B20 进行温度采集,这也是顶层应用文件如何使用底层驱动的一个实例。 在设备描述中设备号是起着非常重要的中用作用,设备号又分为主次设备号。 设备号使得设备文件和驱动程序之间建立起对应关系,其中,主设备号是用来区分不同种类设备,而此设备号是用来区分同类不同设备。 应 用 程 序字 符 设 备 文 件文 件 系 统块 设 备 文 件套 接 字字 符 设 备 驱 动 块 设 备 驱 动协 议 栈网 络 设 备 驱 动字 符 设 备 块 设 备 网 络 设 备 图 Linux用户对各类设备的访问流程 在字符设备中存在一种特殊的字符设备 混杂设备,这类设备的主设备号都是 10,次设备 号 通过函数调用可已进行动态分配。 本设计 DS18B20 的驱动就被划归为字符设备中的混杂设备。 Linux 中使用 misc_registes, misc_deregister 来注册和注销设备 truct miscdevice 来描述一个混杂设备: struct miscdevice { int minor。 const char *name。 const struct file_operations *fops。 struct list_head list。 struct device *parent。 struct device *this_device。 }。 misc 设备注册: int misc_register(struct miscdevice * misc)。 //注册设备获取次设备号 基于 ARM 的数据采集系统的设计 –9– misc 设备注销: int misc_deregister(struct miscdevice * misc)。 说明:上面的结构体是注册 混合设备所需要的参数。 主要有: minor:次设备号,所有的 misc 设备共用一个主设备号,所以注册 misc 设备时只要次设备号就可以了。 利用次设备号来区分设备的。 name:misc 设备名。 *fops:misc 设备文件操作结构体 , 其它三个参数很少 使用。 数据采集电路 DS18B20 简介 [6] 本设计使用于由美国达拉斯公司设计生产的单总线结构的温度传感器 DS18B20。 起初达拉斯公司也生产过一种温度传感器 DS1820, DS18B20 继承 DS1820 一些特性并经过改进提升成为新一代数字单总线 智能温度传感器。 而相对于传统的热敏电阻,它可以直接读取测量温度值,并可以根据实际需要编程实现 9 到 12 位的数字值读数方式,并在很短的时间内完成 9 和 12 位数字值的转换,同时,信息的传输仅仅需要一条总线,实现了理论上的单总线传输,这样就大大节约了主系统的接口资源。 实现温度的 9 和 12位数字值的转换需要消耗一定的功率,而这些功率都是由单总线来提供的,也可连接DS18B20 的总线供电,因此不需要额外的电源供应,这种设计大大减少 I/O 资源。 因而使用 DS18B20 可以使系统结构变得简单,稳定,可靠性高。 而其简单的结构,单总 线结构和经济实用的特点,很容易实现多点温度采集。 DS18B20 的传感器测量温度范围55℃ 〜 +125℃,在 10〜 +85℃范围内。 测量场的温度值直接通过数字单总线传输,用符号扩展的 16 位数字量方式串行输出,在此基础上就大大提高了系统的抗干扰能力。 因此,数字单总线器件 DS18B20 可应用的场合十分广泛。 DS18B20 可广泛应用于工业,民用,军事和教学等 领域内的温度测量以及温度测量和控制仪表设备的生产。 图 DS18B20实物图 基于 ARM 的数据采集系统的设计 –10– DS18B20 性能指标 单 总 线接口方式: DS18B20 与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯; 可用数据线供电,电压范围: +~ +,所以该长安其与开发板 I/O口电平不兼容问题 ; 测温范围: 55 ~+125℃ ,基本 适应于 各种环境温度 的 测量 ; 温度读取方式: 通过编程 控制 可 以 实现 9~12 位的数字读数方式 选择 ; 用户可 通过编程 自设定非易失性的报警上下限值 ,实现温度预警 ; DS18B20可以 实现多点测温 ,很容易实现温度测量网络 ; 负压特性 : 电源极性接反时 ,由于在在电源和地之间加了一个二极管,所以 温度计不会因发热而烧 毁。 测温接口电路及工作时序 (1) 测温模块的硬件电路如下图 123J7DS18B20VCCGND4K7R3Res2VCCT0 图 DS18B20电路图 (2) DS18B20 的时序 DS18B20 的时序主要包括两个方面:一是 DS18B20 的复位时序,在系统发出复位时序后, DS18B20 会发出才能在信号,具体如图 所示;二是 DS18B20 读写时序,具体如图 所示。 基于 ARM 的数据采集系统的设计 –11– 图 DS18B20的复位时序和存在信号 图 DS18B20的读写时序 DS18B20 驱动编写 读 DS18B20 这部分程序主要是实现开发板从 DS18B20 读一个字节的数据。 在函数内部主要是实现对读 DS18B20 读时序的描述,并通过 copy_to_user(buff, amp。 ddat, size)把数据拷贝到用户数据空间。 基于 ARM 的数据采集系统的设计 –12– static ssize_t ds18b20_read(struct file *filp, char __user *buff, size_t count, loff_t *offp) { volatile int i, size=count。 char ddat。 if (size 2) size = 1。 for (i=0。 i8。 i++) { ddat = 1。 s3c2410_gpio_cfgpin(DSDATA, DATAOUTP)。 //配置数据总线( GPF0)为输出模式 s3c。毕设-基于arm的数据采集系统的设计
相关推荐
码管显示速度的等级。 单片机对电机的控制有以下好处:( 1)使电路更加简单,采用电子电路为了实现控制逻辑需要很多电子 元件,而单片机绝大多数的控制电路都可以通过软件实现。 ( 2)可以实现较复杂的控制,单片机有更强的逻辑功能,运算速度快,精度高,有大量的存储单元。 ( 3)灵活性和适应性,用单片机只需要改变程序就可以达到控制的要求。 ( 4)无零点漂移,控制精度高。 ( 5)可提供人际交换
下还可以省去调节池和初沉池,因而使整个工程占地减少、投资降低。 3.具有较强的冲击负荷调节能力,污泥不易膨胀、易于沉淀、脱水性能好,可实现脱氮除磷功能。 4.容易设备化,可升级性、 可改造性好。 1.该工艺要求配备专用排水装置和自动控制系统,在目前环保资金还比较紧张的条件下,限制了 SBR 工艺的高效稳定运行。 2.该工艺的空气扩散器堵塞的可能性大于传统活性污泥法。 3.单池处理量较小
ioioiivRRvRvvRvi)1221NP1( 0 v v 这里取 R1 =10K ,则 R2=90 K ,因为电源电压为 12V,保持 10 倍放大,则设定的电压值与温度的转换关系就为 10 倍,比较容易控制和调节。 实际中取 R2=90 K。 8 6.、放大 电路 模块原理图 比较器模块 设计 这里采用简单的单门限电压比较器,使用的运算放大器为 LM324 中的一个
S51芯片控制温度传感器 DS18B20进行实时温度检测并显示,能够实现快速测量环境温度。 从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。 方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次 设计采用了方案二。 利用温度传感器 DS18B20 可以直接读取被测温度值,进行转换的特性,模拟温度值经过 DS18B20 处理后转换为数字值
是噪音。 ADC 转换器 A/D 转换器件的选择主要取决于温度的控制精度。 本系统要求温度控制误差≤177。 2℃,采用 8位 A/D 转换器,其最大量化误差为 +℃,完全能够满足精度要求。 这里我们采用 ADC0809 作为 A/D 转换器。 电路设计好后,调整变送器的输出,使 0℃~500℃ 的温度变化对应于 0~ V 的输出,则 A/D 转换对应的数字量为 00H~ FAH,即 0~
塞。 但是却不像定时控制,能用 数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及 时停车或启动。 本次课程设计采用定时加中断控制的方式进行 ,对两个方向车辆的通行时间 分别计时 ,可随意进行更改双向的通行时间。 第六章 交通灯设计心得与体会 11 此次实习可以说是获益匪浅。 通过查阅了很多资料,了解 了许多汇编程序的 思想,扩展了自己的视野