温度测量应用广,这个基于ARM的智能测温系统最近很火
DS18B20具有一线通信接口,只需要单根口线即可实现微控 制器通信互联,极大地简化了外部温度传感器通信线路。 DS18B20具有宽泛的工作电压和温度测量范围,750毫秒内 完成温度测量,可在-10℃至+85℃范围达到±0.5℃的测量精 度。DS18B20在出厂时内部集成了唯一的序号, 可用于实现 DS18B20通过一总线进行组网。DS18B20简化的通信接口以 及便捷的组网方式可降低产品的设计成本,提高系统的灵活 性。目前,DS18B20已经被用于各种环控,设备温度监控测 量,以及各种温度测量系统中。
1.3 平台的硬件电路总体构成
平台硬件组成如图1所示。其中核心模块为S5PC100, DD2 SDRAM、NAND FLASH、TFT LCD、SD卡、RS232接 口均可通过S5PC100内部外设接口直接扩展,以太网接口通 过S5PC100的外部静态总线接口连接。
1.4 平台主要软件方案的选定
在简单系统中 , 一般采用前 、 后台编程方式设计软件,但在复杂的系统中,前后台方式的软件设计方法无法满 足系统的要求,需要网络协议栈支持、文件系统支持、多进 程支持后,前、后台软件由于其超循环编程方法的限制很 难实现系统的功能要求,因此复杂的嵌入式系统往往加入 了嵌入式操作系统的支持。 目前,常用嵌入式操作系统有 VxWorks、WinCE、Linux等。这里我选用的是Linux,它是开 放源代码的类UNIX操作系统。目前经过长期的发展Linux已 成为世界领先的操作系统,可以运行在服务器、大型机和超 级计算机, 由于Linux的可剪裁性和可移植性,目前也广泛 应用在嵌入式设备上,如消费电子产品、交换设备、工业控 制等。
Linux具备良好的多进程与多线程支持,并且支持多种 网络协议、具备丰富的文件系统,并且其开源代码的特性受 到广大的开发者支持。
在本系统中采用L inu x操作系统能够充分利用嵌入式 Linux中成熟的网络协议簇以及模块化的剪裁方法,降低系 统软件的开发难度,提高了系统设计的灵活性。
1.5 系统软件架构
平台设计的软件采用分层以及模块化的方式进行设计。由于采用嵌入式Linux操作系统作为解决方案。因此, 将软件划分为应用层、系统层、驱动层;系统层软件需要完 成Linux在操作系统上的移植和各个模块的驱动;应用层软 件需要完成温度采集模块、显示模块以及网络通信模块的软 件设计。软件层次示意图如图2所示。
2 系统各主要接口硬件电路设计
图7 PWM接口蜂鸣器电路连接图
图8 Linux系统软件组织示意图
2.1 S5PC100存储系统设计
设计的目标平台中需要扩展三种类型的存储介质,分 别为DDR2 SDRAM、NAND FLASH以及SD卡电路。下面按 照三种存储介质在系统中的功能分别进行阐述。
(1)DDR2 SDRAM电路
S5PC100 SDRAM控制器通过向外部16位或32位SDRAM
提供接口来扩展芯片存储能力。本平台采用2片K4T1G164
16位宽度DD2 SDRAM组成32位内存,容量256MB,如图3。
(2)NANDFLASH电路与SD卡存储电路 由于系统需要运行Linux系统,系统代码较为复杂,需
要一定容量的存储器存放Linux操作系统源代码以及应用程 序,由于S5PC100内置了NAND FL ASH控制器,因此平台 采用K9F2G08 256MB NAND FLASH直接与S5PC100 NAND FLASH控制器接口连接。SD卡可通过S5PC100内置SDIO1总 线直接连接。其NAND FLASH电路原理图如图4所示、SD卡 的原理图如图5所示。
2.2 温度传感器接口
平台设计了采用DS18B20一线制温度传感器接口。采用 S5PC100处理器GPIO引脚接口控制温度传感器DS18B20的温 度测量,LCD屏输出测量温度,原理图如图6所示。
2.3 温度报警电路
本 设 计 采 用 软 件 处 理 报 警 , 利 用 无 源 蜂 鸣 器 进 行 报 警,当所测温度超限后输出PWM信号,驱动蜂鸣器报警, 其电路原理图如图7所示。
3 系统软件设计
3.1 Linux操作系统移植
完整的嵌入式linux系统由bootloader、kernel、rootfs等
3个基本部分组成。其中bootloader用于引导和装载操作系统、kernel为linux内核程序、rootfs为文件系统,如图8。
3.1.1 交叉编译环境
嵌入式开发系统受到自身硬件以及软件资源的限制, 无法完成代码的本地编译,其开发需要在宿主机上建立交叉 开发环境。
交叉开发环境是包含了编辑器、编译器、连接器、调 试器和libc库等的程序环境。在开发嵌入式Linux相关软件 时,常用的交叉开发工具是GNU工具链。系统中宿主机使 用的开发环境为ubuntu12.04操作系统,目标板内核版本号为 标准linux-2.6.35,使用到的交叉编译器是arm-linux-gcc-4.5.1。
3.1.2 Bootloader程序设计
Bootloader是在操作系统运行前运行的一段专用程序, 可以完成平台硬件设备的初始化,并能完成引导和调试操作 系统。 Bootloader依赖CPU体系结构,一般将Bootloader按功 能划分为两个阶段,其中第1阶段实现基本硬件电路的初始 化,为操作系统的运行准备环境。在平台中,由于使用的是 ARM微控制器,因此第一阶段需要实现设置处理器进入管 理模式、关闭处理器中断与快中断、设置处理器主频、高速 总线主频与告诉外设主频、CPU关闭MMU与数据Cache,初 始化内存控制器,代码由存储器自搬运至内存,设置运行程 序需要的临时堆栈、BSS段清零等工作。第2阶段主要实现 进入交互模式或者自引导模式,实现操作系统的加载,一般 要根据操作系统与硬件平台的需要实现相关硬件的初始化工 作, 如初始化GPIO、串口、网口等外部设备,完成向内核 传递启动参数等功能。
- 基于ARM的除法运算优化策略(01-14)
- 基于ARM的CAN总线智能节点的设计(01-24)
- ARM基础知识教程五 (02-08)
- ARM基础知识教程六(02-08)
- ARM基础知识教程七(02-08)
- ARM基础知识教程八(02-08)