新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ARM及CAN总线的汽车行驶记录仪的开发

基于ARM及CAN总线的汽车行驶记录仪的开发

作者: 时间:2013-05-31 来源:网络 收藏


打印输出电路

微型打印机M-1926有串口和并口两种接口,系统采用其串口功能,与LPC2292的DART1接口连接,实现对微机的控制输出。

的软件设计

本系统软件部分的设计都是在ADS开发环境下进行的,并通过JTAG仿真器进行软件调试。ADS(Developer Suite)集成开发环境是公司推出的核处理器集成开发工具。JTAG(Joint Test Action Group)是一种通过ARM芯片的JTAG边界扫描口进行调试的仿真设备,它比在线实时仿真器要廉价简单,是现在较为流行的一种仿真器。本系统采用的EasyJTAG是广州周立功单片机发展有限公司开发的LPC2000系列ARM7微控制器的JTAG仿真器。

本系统软件部分的程序流程图如图2所示。软件部分主要包括以下几个模块:

A/D采样模块

LPC2292内置有8个模数转换器ADC,其控制器只有2个,即ADCR、ADDR。本系统使用3个ADC分别采集、转换3路模拟信号。首先将ADC设置为向量IRQ中断,为其中断通道分配一个优先级,并设置中断服务程序地址向量,此后将ADCR的START位置1来启动ADC转换。每当ADC完成一次转换,ADDR寄存器(A/D Data Register)的DONE位置1,从而引起中断,转入中断处理程序,在该处理程序中从ADDR寄存器的6-15位读取转换结果,再将二进制数转换成十进制数予以保存并显示。

FLASH数据存储模块

为了调用方便,系统软件部分对FLASH操作做了函数封装,主要有如下两个函数接口:

1、页写操作:将一字节数据写入FLASH的某个特定地址。当命令下发完之后延时一段微秒级的时间,然后把被写数据所在页整页读出,将被写数据所在地址的数据值替换为被写数据,其余地址的数据值不变,然后整页写入FLASH,完成页写操作。

2、整片擦除操作:对FLASH存储阵列中的内容进行整片擦除。通过给FLASH下发特定地址的特定六个字 节的命令字来完成FLASH整片擦除操作,数据下发完毕后需要等 待50mS,或等待内部toggle/plling操作完成。

RS232串口通信模块

本系统利用两个UART,一个用于提供主机与上位机软件的通信接口,另一个用于提供微型打印机与主机的连接接口。主机和上位机软件的RS232串口通信协议如下:通信波特率为15200, 8位数据位,1位停止位,无奇偶校验。

软件为RS232串口通信提供的函数接口有:

1、串口发送一个字节数据:将要发送的数据装载到串口发送寄存器中,等待串口状态字变1,则表示数据发送完毕。

2、串口初始化:根据串口通信协议对波特率、奇偶校验、数据位和停止位进行设置。

LCD液晶显示模块

主要包括的函数模块如下:

1、LCD“忙”检查:对LCD操作很重要的部分就是进行时序模拟,而时序模拟最重要的是LCD“忙”检查。程序代码如下:
uint32 rb;I02DIR=LCD_DO_D7; //P2口连接的D0到D7口设为输入方式,然后读取状态命令

IO1CLR=LCD_RS;
IO1SET=LCD_RW;
if(rb!=0)
{IO1SET=LCD_E;
rb=(I02PIN0x80000000);
IO1CLR=LCD_E;
}; //忙等待
IO2DIR=LCD_DO_D7;//将LCD数据位重新设为输出方式

2、向LCD下发命令:若LCD“不忙”,在LCD的管脚E的下降沿锁存命令字节完成命令的发送。
3、LCD初始化:对LCD内部“忙”操作状态进行检查,设置显示的起始行,然后开显示。
4、LCD液晶写一组汉字:函数写汉字的时候实际上是将汉字字模写入LCD。
5 、LCD液晶画图:LCD画图和写字其实很类似,将相应的字模写入规定的LCD屏幕的位置即可。LCD液晶画图用于报警信号的显示。

CAN-BUS通信模块

CAN通信与一般的串口通信类似,在数据通信前要对进行初始化操作,包括CAN控制器的选择、数据寄存器的设置以及通信波特率的设置等。初始化完成后,则需要设置双方的通信协议,建立彼此的连接。只有在同一协议下工作的双方才能正确进行数据的交换。软件提供的CAN-BUS通信函数接口包括初始化CAN、发送数据以及接收数据等。

结束语

结合了计算机技术、嵌入式技术以及现场总线技术等多项先进技术,具有高实时性、抗干扰能力强、可靠性高、数据精度高以及系统扩展方便等特点,可以在车辆实时警告与稽核、公安交警部门的事故处理等方面发挥一定的作用。(end)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭