基于arm与大容量nandflash的gnss数据采集系统设计与实现内容摘要:

个脉冲计数功能及一个带可选频率的 PWM 通道。 ⑹实时时钟( RTC) 实时时钟提供一组连续运行的计数器,这些计数器由低功耗的 32kHZ的振荡器驱动。 RTC 可作为通用的基准时间( timebase)使用,也可用于时钟、日历或报警。 当 STR71x在 Standby 模式下, RTC 可以继续工作,此时, RTC 由低功耗电源稳压器供电, 32kHz XXX 大学毕业设 计(论文)报告用纸 第 4 页 共 43 页 振荡器驱动。 ⑺异步串行接口( UART) 4个 UART 允许实现与外部设备的全双工异步通信,其接收 Rx 和发送 Tx的数据传输率可单独编程设置,最高可达 625kb/s。 ⑻ HDLC 接口 高级数据链路控制器( HDLC)支持全双工操作和 NRZ、 NRZI、 FM0 或 MANCHESTER 协议。 内部含一个 8位的波特率生成器。 ⑼ A/D 转换器 该模拟 /数字转换器,能在单次( singleshot)模式或持续转换模式下实现单通道或 4通道的转换。 采样率为 (在单通道模式下 1kHz)的情况下,分辨率可达 12位。 采样电压范围为 0~。 ⑽看门狗定时 器 16 位的看门狗定时器,用于保护应用程序,防止硬件或软件错误,通过产生复位信号确保成功复位。 ⑾ I/O 端口 48 个输入 /输出端口可编程设置为输入或输出。 ⑿外部中断 最多有 14个外部中断可被用户使用,或利用这些外部中断将系统从 STOP 模式唤醒 下载接口为 JTAG 接口,不仅方便程序的下载而且也有助于系统的调试。 外部存储器 外部存储器主要用于存储 GPS 数据信息,对容量有一定的要求,不能太小。 外扩的存储器为 Nand 型 Flash K9F2808UOC。 K9F2808UOC 是一个含有 4M 位备用容量的 128M位Flash 存储器,它的 Vcc 为 ,其 NAND 单元为固态海量存储器市场提供了最低成本的方案。 528 字节的页编程操作时间为 200us , 16K 字节的块擦除操作时间为 2ms。 页面的数据以每个字 50ns 的速度被读出。 I/O 管脚可用作地址线,数据输入 /输出口以及命令输入口。 片内写控制自动实现所有编程和擦除功能,包括脉冲的周期,内部校验和数据冗余。 主要需要写操作的系统也可利用 K9F28XXU0C 的 100K 可靠的编程 /擦除周期 通过提供实时描述算法得出的特性来实现。 LCM 本系统采用 的 LCM 是 YM12864,YM12864I 是一种图形点阵液晶显示器。 它主要采用动态驱动原理由行驱动 — 控制器和列驱动器两部分组成了 128(列 ) 64(行 )的全点阵液晶显示。 此显示器采用了 COB 的软封装方式,通过导电橡胶和压框连接 LCD,使其寿命长,连接可靠。 由于本课题中只需要在 LCD 上显示一些定位信息,比如时间,日期,经纬度等,因此对液晶的要求不高, YM12864 完全满足要求。 XXX 大学毕业设 计(论文)报告用纸 第 5 页 共 43 页 电源稳压器 系统需要 +5V、 + 两组电源。 其中 5V 电源需要的电流最大。 整个电源包括整流滤波、 +5V 稳压、 + 开 关稳压、 3 部分组成。 降压开关稳压器 采用的是 降压型 DC/DC转换器 LT1976。 这是一款高效的,适合本系统特点的电源稳压器。 特点如下: •140oC 的最高结温 •宽输入范围: 至 60V • 峰值开关电流 •突发模式工作:静态电流为 100uA •低停机电流: IQ 1uA •具可编程门限的电源良好( Power Good)标记 •负载突降保护至 60V •200kHz 开关频率 •饱和开关设计: 导通电阻 •在整个占空比范围内保持峰值开关电流 • 反馈基准电压 •可非常容 易地同步 •软启动功能 3 软件 方案论证 系统硬件确定以后,主要工作就是软件开发,本课题的主要工作在软件开发方面。 软件开发包括下位机软件开发和上位机软件开发。 其中下位机软件开发包括中对 GPS 数据的采集、传输、处理、存储、显示;上位机软件开发包括数据传输,处理,保存等部分。 软件方案设计是根据系统功能进行设计的,主要涉及到是否采用嵌入式操作系统,如嵌入式 linux, uCOSII 等;选用何种开发语言;是否采用文件系统以及选用何种传输方式等。 开发平台选择 开发平台分为裸机开发和基于嵌入式系统平台开发。 嵌入式系统能够对系统的资源进行管理,分配,调度。 在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。 通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。 通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。 但是,使用嵌入式实时操作系统还需要额外的 ROM/RAM 开销, 2~5%的 CPU额外负荷,以及内核的费用。 本课题要实现的功能并不是很多,有数据传输,处理,采集,存储等,由 于 STR710FZ2T6 资源丰富,这些功能完全可以通过一些中断功能高效的完成,相比之 XXX 大学毕业设 计(论文)报告用纸 第 6 页 共 43 页 下,效率更高。 综上所述,采用裸机环境开发。 文件系统选择 由于系统要以文件的格式存储采集的到的 GPS 数据,因此一定要采用文件系统。 文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统。 具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。 在嵌入式系统中常用的文件系统有 FATFS,YAFFS2 等。 这些文件系统功能都比较完善,但代 码量也相对较大。 另一方面系统要实现的只是保存文件,并不需要修改,销毁,转存等功能。 针对本课题来说,移植这些文件系统并不高效。 因此放弃移植现有的文件系统,开发适合本系统的高效的文件系统。 通信方式选择 GPS 主板与微处理器之间、上位机与下位机之间的通信方式均采用串口方式。 串口通信是计算机与其他设备进行数据通信时经常使用的方法,具有实现简单、使用灵活、数据传输可靠等几个优点串口连接简单方便。 绝大部分计算机都自带串口,无需另外购买。 所以下位机与上位机之间的通信选择串口。 4 软件设计 如果说硬件是电 路的躯体,那么软件就是让这个躯体动起来的灵魂。 软件的设计要基于硬件的基础,以设计的功能为方向来实现。 在整个系统中,软件分为下位机软件和上位机软件来编写的,这两部分软件相互独立,但是又有着相互的联系。 下位 机 软件 设计 下位机程序开发环境选择的是 IAR Embedded WorkBench for ARM ,这是一个针对 ARM处理器的集成开发环境,它包含项目管理器、编辑器、 C/C++编译器和 ARM 汇编器、连接器 XLINK 和支持 RTOS 的调试工具 CSPY。 在 IAR EWARM 环境下可以使用 C/C++和汇编语言方便地开发嵌入式应用程序。 比较其他的 ARM 开发环境, IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。 下位机主要负责接收 GPS 主板发送的数据并进行数据处理,显示和存储。 下位机软件主要由六大部分组成,包括串口驱动模块, Nand Flash 模块,文件管理模块,显示模块,上 下机命令处理模块, GPS 数据解析模块。 串口驱动模块主要是串口的驱动程序,包括初始化、设置等; Nand Flash 模块是外扩 Nand Flash 的基本驱动函数,如读、写、删除等;文件管理模块是文件系统部分,包括文件系统 的格式化、初始化,文件的创建、读、写、删除等;上 下机命令处理模块主要是上下位机对各种命令的解析和处理; GPS数据解析模块主要是对采集到的 GPS 数据进行解析。 下位机的流程图如图 41 所示。 XXX 大学毕业设 计(论文)报告用纸 第 7 页 共 43 页 图 下位机程序流程图 串口驱动模块 系统 GPS 数据的采集以及上位机、下位机的通信都是通过串口完成的,因此串口在整个系统中占有重要地位,它是数据采集、处理和传输的基础,串口部分的稳定性关系到整个系统的稳定性。 系统中主要用到 2 个串口,串口 0用于和上位机通信;串口 1用于与 GPS主板通信。 对于上述 2个串口的接收都是采用中断的形式,中断形式增强了接收数据的实时性,可有效防止数据丢失。 串口的初始化部分是放在一个初始化文件 ,该文件初始化了 系统所要用到的部分,包括串口,定时器, LCD,外部 Nand Flash, LED,文件系统等。 串口的初始化代码如下: /*********配置串口 0*************/ UART_OnOffConfig(UART0, ENABLE)。 // 使能串口 0 UART_FifoConfig(UART0, DISABLE)。 // 取消 FiFo UART_LoopBackConfig(UART0, DISABLE)。 // 取消回环测试 /*********配置串口 1*************/ 接收数据显示数据是否存储数据处理数据是否上位机命令。 是否查看文件信息命令。 否下载文件命令。 否删除文件命令。 否发送文件信息发送指定文件内容删除文件初始化串口有数据。 是否GP S 数据。 设置 GP S 主板命令。 转发到GPS 主板是是是是否数据是否有效。 开始 XXX 大学毕业设 计(论文)报告用纸 第 8 页 共 43 页 UART_OnOffConfig(UART1, ENABLE)。 // 使能串口 1 UART_FifoConfig(UART1, DISABLE)。 // 取消 FiFo UART_LoopBackConfig(UART1, DISABLE)。 //取消回环测试 /*********配置串口的输入输出属性 ************* Baudrate = 19200 Bps No parity 8 data bits 1 stop bit ************************************************/ UART_Config(UART0, 19200, UART_NO_PARITY, UART_1_StopBits, UARTM_8D)。 UART_Config(UART1, 19200, UART_NO_PARITY, UART_1_StopBits, UARTM_8D)。 UART_RxConfig(UART0, ENABLE)。 //使能串口 0接收 UART_RxConfig(UART1, ENABLE)。 //使能串口 1 接收 /*********配置中断 *************/ EIC_Init()。 //初始化中断控制器 EIC_IRQConfig(ENABLE)。 //使能普通中断 /*********配置串口 0中断 *************/ EIC_IRQChannelPriorityConfig(UART0_IRQChannel, 3)。 //设置串口 0 的中断优先级 EIC_IRQChannelConfig(UART0_IRQChannel, ENABLE)。 //使能串口 0中断通道 UART_ItConfig(UART0,UART_RxBufFull, ENABLE)。 //使能串口 0 接收中断,不为空即产生中断 /*********配置串口 1中断 *************/ EIC_IRQChannelPriorityConfig(UART1_IRQChannel, 1)。 //设置串口 1中断优先级 EIC_IRQChannelConfig(UART1_IRQChannel, ENABLE)。 //使能串口 1断通道 UART_ItConfig(UART1,UART_RxBufFull, ENABLE)。 //使能串口 1收中断,不为空即产生中断 串口 0,1 的中断处理函数分别为: void UART0_IRQHandler(void) 为串口 0的中断处理函数,主用接收和处理来自上位机的串口数据,上位机发送的关于文件处理的命令格式为“ 命令 %”,即 ’ ’ 表示命令的开始, ’ %’ 表示命令的结束;上位机发送的关于 GPS主板的命令格式为“ $命令 %” ,即 ’ $’ 表示命令的 开始, ’ %’ 表示命令的结束。 void UART0_IRQHandler(void) {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。