桂林电子科技大学毕业设计(论文)报告用纸 第 6 页 共 56 页
1 项目设计方案
本设计的系统框图如下所示:
温度传感器 喇叭 LPC2478 uClinux Web服务器 图1.1系统框图
实施方案:
LPC2478 和 uCliunx 实现对 DS18B20温度传感器进行温度的采集,通过Web浏览器访问Boa Web服务器可以查看到温度的情况,然后在通过Web CGI对LPC2478板子上的DAC(DAC与喇叭连接)进行控制,来模拟对温度的控制。
用户用web浏览器访问板子的web服务器,然后发送命令对板子进行控制。 监测温度:将温度以网页的形式显示出来,网页每两秒刷新一次并监测温度,如果大于预设值则驱使DAC输出报警。
升加1°C:用户点击该按钮即可实现对DAC的控制,是喇叭发出声响,来模拟对温度的控制。
降低1°C:用户点击该按钮即可实现对DAC的控制,是喇叭发出声响,来模拟对温度的控制。这三者的频率都不一样。
WEB系统框图如下:
Web客户端监控
图1.2 WEB系统框图
6
桂林电子科技大学毕业设计(论文)报告用纸 第 7 页 共 56 页
2 开发环境介绍
2.1 LINPO-PS LPC_2478介绍
LINPO-PS LPC_2478实验板是上海丰宝电子科技有限公司设计的ARM7系列实验板之一,采用了恩智浦公司基于ARM7TDMI-S内核、单电源供电、LQFP208封装的LPC2478,具有JTAG仿真调试,ISP编程等功能。
实验板上提供了一些键盘、数码管、LED、喇叭等常用功能部件,还具有RS232 接口电路、I2C 存储器电路、USB OTG和HOST电路、CAN总线电路、SD卡接口、I2S接口电路、CAN总线电路、LCD接口电路以及10M/100M以太网电路。另外,用户也可以更换兼容的MCU 进行仿真调试,如LPC2468、LPC2470等。还为用户引出I/O 接口以及地址和数据总线接口,极大地方便了用户进行32 位ARM 嵌入式系统的开发实验。
2.2 NORFLASH介绍
系统采用芯片AM29LV160DB是16位的存储宽度,因此芯片的A0~A19脚与总线的A1~A20脚连接。片选信号使用CS0,这样本片NOR Flash被配置为外部静态存储器的Bank0,其地址范围为0x80000000~0x801FFFFF。如下图所示:
图2.1
7
桂林电子科技大学毕业设计(论文)报告用纸 第 8 页 共 56 页
2.2.1 AM29LV160DB简介
AM29LV160DB为2MB的NOR Flash芯片,使用电平为2.7V~3.6V,存取时间70ns,封装形式为48脚的FBGA或TSOP封装。
AM29LV160DB一共提供了35个扇区,其中4~34号扇区为64Kbyte或32Kword。对扇区的操作为字节模式或字模式。字节模式时,每个扇区的存储单元大小为8bit;字模式时,扇区的存储空间寻址范围小一半,但每个地址单元的数据大小为16bit。 2.2.2 AM29LV160DB的操作命令字
对NOR Flash存储器的数据读操作跟普通的RAM是一样的。但进行写、擦除、查询等操作时要使用写入组合命令字来实现。AM29LV160DB的命令字见下图。
图2.2
例如:当要查询芯片的生产厂商ID号时,在字模式下,前三个周期分别向地址0x555、0x2AA、0x555处写入数据0xAA、0x55、0x90,第四个周期从地址0处即可获得厂商ID。
2.2.3 Nor flash的映射
LPC2400系列芯片具备外部存储器接口,通过外部存储器控制器(EMC)可以扩展两组共8个Bank的存储器组(静态存储器bank0~bank3,动态存储器bank0~bank3)。对于外扩的FLASH(NOR)型,则可以使用LDR指令读取数据,但是不能使用STR指令直接写数据,而是需要根据FLASH芯片写操作时序进行控制,实现FLASH的擦除编程。
8
桂林电子科技大学毕业设计(论文)报告用纸 第 9 页 共 56 页
2.3 Nand flash介绍
NAND Flash与总线的连接与SDRAM和NOR Flash的连接不同,地址线只用了A21和A22做时钟使能和地址使能信号,数据线只用8位作为IO线。分别与总线连接。片选信号使用CS1,这样本片NAND Flash被配置为外部静态存储器的Bank1,其地址范围为0x81000000~0x81FFFFFF。其硬件连接图如下:
图2.3
2.3.1 Nand flash芯片工作原理
Nand flash芯片型号为K9F2G08U0M,存储容量为256M ×8bit (256M字节),采用块页式存储管理。8个I/O引脚充当数据、地址、命令的复用端口。
芯片内部存储布局及存储操作特点
一片Nand flash为一个设备(device), 其数据存储分层为: 1 Block = 64 Pages (128K + 4k) Byte 1 Page = (2K + 64)Bytes
1 Block = (2K + 64)B x 64 Pages= (128K + 4K) Bytes
1 Device = (2K+64)B x 64Pages x 2048 Blocks= 2112 Mbits=264MB
在每一页中,最后64个字节(又称OOB)用于Nand Flash命令执行完后设置状态。 重要芯片引脚功能 I/O0I/O7:复用引脚。
可以通过它向nand flash芯片输入数据、地址、nand flash命令以及输出数据和操作
9
桂林电子科技大学毕业设计(论文)报告用纸 第 10 页 共 56 页
状态信息。
CLE(Command Latch Enable): 命令锁存允许。 ALE(Address Lactch Enable): 地址锁存允许。 CE:芯片选择。 RE:读允许。 WE:写允许。
WP:在写或擦除期间,提供写保护。 R/B:读/忙输出。
2.3.2 Nand flash主要内设命令详细介绍
Nand Flash命令执行是通过将命令字送到Nand Flash控制器的命令寄存器来执行。 Nand Flash的命令是分周期执行的,每条命令都有一个或多个执行周期,每个执行周期都有相映代码表示该周期将要执行的动作。
主要命令有:Read 1、Read 2、Read ID、Reset、Page Program、Block Erase、Read Status。
详细介绍如下: 1. Read 1:
功能:表示将要读取Nand flash存储空间中一个页的前半部分,并且将内置指针定位到前半部分的第一个字节。 命令代码:00h 2. Read 2:
功能:表示将要读取Nand flash存储空间中一个页的后半部分,并且将内置指针定位到后半部分的第一个字节。 命令代码:30h 3. Read ID:
功能:读取Nand flash芯片的ID号 命令代码:90h 4. Reset:
功能:重启芯片。 命令代码:FFh 5. Page Program:
功能:对页进行编程命令, 用于写操作。
10