当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于ARM9的嵌入式智能车载系统设计

引 言

随着社会经济的发展,汽车已成为人们工作、生活中不可缺少的一种交通工具。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,开发了各种各样的电子控制系统。本文设计一种基于ARM9 S3C2410A的智能车载系统,它能够通过GPS全球定位系统和GPRS无线通信技术,实现车辆定位以及车辆与控制中心之间的数据通信,构建CAN总线控制模块用于采集车辆主要部分的工作状态,实时监控汽车的主要技术参数,并通过LCD模块显示车载信息的综合信息。

1 智能车载系统的功能

车载智能导航终端应具有如下功能:

车辆定位 它指通过GPS全球定位系统获取车辆的当前所处位置,包括经度、纬度、运动速度、标准时间以及海拔高度等信息;

网络通信 它采用GPRS无线通信技术,与监控中心保持联系,实时获取道路交通状况,为交通道路的智能管理提供基础;

故障检测 它通过CAN总线实时检测汽车的主要技术参数;

信息显示 它通过LCD液晶屏显示车辆位置、调度信息以及检测到的汽车技术参数。

智能车载系统可根据用户需要实现其他功能,例如通过GPRS自动报警增加自动报警功能,扩展音频设备和IDE接口设备以增加娱乐功能,通过USB接口连接图像采集设备,对车内外进行视频监控等功能。

2 智能车载硬件系统设计

本系统以S3C2410A为主控模块,扩展了64 MBNand Flash,用于存放启动代码和嵌入式Linux操作系统等;64 MB SDRAM用作系统运行时的内存;LCD提供了更好的人机交互界面,并通过串口与GPS模块相连,通过UART异步串口与GPRS模块相连,通过SPI接口与CAN总线相连,利用CAN总线挂接传感器,检测汽车主要技术参数,系统框图如图1所示。

2.1 主控模块

S3C2410A是韩国三星公司面向手持设备以及高信价比、低功耗和低价格而设计的一款基于ARM920T内核的16/32位RISC嵌入式微处理器。它采用5级流水线,资源丰富;带有独立的16 KB的指令Cache和16 KB的数据Cache,64 MB SDRAM,64 MB NandFLAsH,LCD控制器,RAM控制器,NAND内存控制器,3路UART,4路DMA,4路带PWM的定时器,并行I/O口,8路10位ADC,Touch Screen接口,I2C接口,I2S接口,2个USB接口控制器,2路SPI,其工作频率最高达到203 MHz。

2.2 GPS模块

GPS模块主要完成GPS定位信息的接收和处理。根据设计性能的要求和节约系统成本的考虑,选用的就是GARMIN公司的GPS25-LVC接收机,其内置了GPS25OEM板。该接收机与主控模块的接口方式采用RS 232兼容TTL的串行口方式,因此设计中将其与S3C2410A的串口1相连。GPS-25LVC与S3C2410A之间信号线仅需要连接GPS25-LVC的TXD1与S3C2410A的TXD1。另外,还要将GPS25-LVC的地线和电源线连接到主控板的地线和5 V电源上。

2.3 GPRS模块

GPRS模块主要完成车辆与车辆、车辆与控制中心的通信。在本系统中,GPRS模块选用MC35。MC35的数据输入/输出接口实际上是一个UART,它可以与S3C2410中的UART接口直接相连。

2.4 CAN总线模块

CAN总线模块可以使本系统与其他车载模块的连接,完成收集车辆的状态信息以及进一步控制。CAN总线模块主要包括CAN总线的控制器和收发器,在这里分别选用的是Microchip公司的MCP2510和飞利浦公司的PCA82C250。其中,CAN总线控制器MCP2510实现了CAN总线的协议,CAN总线收发器PCA82C250提供协议控制器和物理传输线路之间的接口。由于CAN总线控制器MCP2510具有SPI接口,因此,系统中将其与S3C2410A的SPI0相连。

2.5 故障检测模块

故障检测模块主要是对汽车的主要技术参数进行检测,并显示到LCD显示器上,如果检测到故障,会发出报警信号。本文主要检测的技术参数包括燃油消耗量、制动力、转向力、发动机温度、冷却液温度、前照灯,以及车内噪声和尾气等方面。该模块主要是通过各种传感器把各种信号转换为电信号,再利用信号处理电路把电信号进行相应的处理,使其能与CAN总线模块进行数据传输。

2.6 LCD模块

LCD模块用以实现信息的显示,提供一个良好的人机交互界面。本系统主控模块的处理器S3C2410内置了LCD控制器,支持STN-LCD和TFT-LCD。本文选用夏普公司的TFT-LCD模块LQ080V3DG01,该模块具有640×480的分辨率,18位的颜色深度,可与S3C2410A的LCD接口直接相连。

3 智能车载系统软件设计

由于Linux具有源代码公开、剪裁方便、移植方便等诸多优点,所以本系统选择嵌入式Linux作为软件运行平台。嵌入式Linux是将Linux内核移植到S3C2410A平台上。嵌入式Linux操作系统不仅可使软件的开发更加灵活,也能使整个系统的可靠性得到提高。该软件设计的具体流程如图2所示。

交叉编译环境是一个由编译器、连接器和解释器组成的综合开发环境。BootLoader是系统加电启动运行的第一段软件代码,类似于PC机的BIOS加上硬盘MBR中的引导程序。它可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核或用户应用程序准备好合适的环境。Linux操作系统的移植是将Linux内核经过重新的剪裁、编译后移入到S3C2410A上。下面主要阐述各模块驱动和应用程序的编写。

3.1 GPS定位功能实现

GPS模块软件设计的基本思想如下:首先接收完整的NMEA0183语句,然后提取相关的数据(时间、经纬度、速度),再将这些数据送去显示或者发送出去,并且可以保存,以便日后查看。

由于GPS模块是通过串行口1与S3C2410A进行通信的,因此本文设计了Linux系统下相应的串行口通信程序。串口程序设计具体步骤如下:

(1)串行口1的初始化:设置串行口1的通信方式为8位数据位,1位停止位,无奇偶校验位。波特率为4 800 b/s。

(2)一帧一帧接收ASCII码字符信息。

(3)对每一帧ASCII码字符信息进行数据处理。

在数据处理过程中,针对需要的定位信息要求,设计了如下的串行通信思想:

①以“$GPRMC”为过滤条件,接收定位语句。

②在“$GPRMc”之后的59个字符为有用的信息,所以用“59”作为判断定位语句完整的依据。

③在数据接收的过程中往往会有两种情况,一种是每帧会得到一个以“$GPRMC”开头的完整语句,另一种是上一帧的后半部分在加下一帧的前一部分共同组成的完整定位语句。

3.2 GPRS通信模块实现

GPRS模块是借助GPRS无线网络实现数据的无线传输,从而在不同的车辆或车辆与控制中心之间架起沟通的桥梁,所以软件的功能主要是建立无线连接,按照GPRS通信协议传输数据。

GPRS模块的通信主要是通过串口驱动实现,在嵌入式Linux内核中已经提供了对串设备的支持,因此在配置内核编译选项时,只需要选中对串口设备的支持,就可以实现对GPRS模块的串口数据通信功能。为了实现与Internet的通信,还需要在配置内核编译选项时选中PPP和TCP/IP协议。这样一旦网络连接建立,就可以使用应用程序来实现网络数据的通信。

本系统数据链路层采用PPP协议,它是一种面向字符的协议,是为在两个对等实体间传输数据包连接而设计的,使用可扩展的链路控制协议LCP来建立、配置和测试数据链路。用网络控制协议族NCP来建立和配置不同的网络层协议,并且允许采用多种网络层协议。一个PPP会话分四个步骤:建立连接、连接质量控制、网络层协议配置和连接终止。

嵌入式Linux系统内核源自于Linux内核,并保留了对TCP/IP以及其他的网络协议的支持。在嵌入式Linux系统上编写网络应用程序与在Linux上编写网络应用程序没什么大区别,通常只需要做很小的修改就可以移植到嵌入式Linux系统上。至此,GPRS模块完整地集成到嵌入式终端中。

3.3 CAN模块实现

CAN总线驱动程序要完成的报文发送、接收等任务都是围绕CAN总线控制器展开的,因此驱动程序主要是对控制器MCP2510内部寄存器进行操作。CAN总线控制器MCP2510的初始化按照以下步骤进行:

(1)软件复位,进入配置模式;

(2)设置CAN总线波特率;

(3)关闭中断,设置ID过滤器;

(4)切换MCP2510到正常状态;

(5)清空接收和发送缓冲区;

(6)开启接收缓冲区,开启中断。

4 结 语

该系统不仅能够通过GPS和GPRs实现车辆定位以及车辆与控制中心之间的数据通信,还能够通过CAN总线检测汽车主要技术参数,为交通道路的智能管理以及汽车的安全驾驶提供了可靠保障。

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

德国康佳特亮相上海工博会,展示多款应用就绪的嵌入式解决方案平台

关键字: 嵌入式 传感器 处理器

双方携手为客户打造以存储为核心的模块化基础架构,支持先进的多裸片架构设计

关键字: 非易失性存储 半导体 嵌入式

本届年会将在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)举行,面向嵌入式设计工程师推出25门技术课程

关键字: 嵌入式 MCU 模拟

上海2025年9月5日 /美通社/ -- 由纽伦堡会展(上海)有限公司举办的上海国际嵌入式会议将于 2025 年 10 月 16-17 日在上海世博展览馆举办。 此次会议将由三个版块组成:嵌入式技术会议、汽...

关键字: 嵌入式 CE CHINA EMBEDDED

从外部看,电子系统仿佛一个统一的学科或设备,各组成部分协同工作,浑然一体。然而揭开表象,其内在却是另一番景象:一个碎片化、多层次的世界——其中每一层都独立且复杂,衍生出各自特有的工具、专家、工作流程,甚至哲学体系。

关键字: 嵌入式 电子系统 半导体

8位单片机在嵌入式设计领域已经成为半个多世纪以来的主流选择。尽管嵌入式系统市场日益复杂,8位单片机依然不断发展,积极应对新的挑战和系统需求。如今,Microchip推出的8位PIC®和AVR®单片机系列,配备了先进的独立...

关键字: 单片机 嵌入式 CPU

深圳2025年8月28日 /美通社/ -- 8月26日,2025 ELEXCON深圳国际电子展盛大启幕。本届大会以"All for AI"为主题,深圳市德...

关键字: AI 工业级 SSD 嵌入式

深圳2025年8月26日 /美通社/ -- 8月26日,由博闻创意会展主办的 第22届深圳国际电子展暨嵌入式展(elexcon2025)在深圳(福田)会展中心隆重开幕。 作为中国电子与嵌入式技术领域的专业大展,本届展会...

关键字: 嵌入式 电子 高通 AI

模块化设计作为一种将系统拆分为独立、可复用组件的方法,能够在低代码平台中实现功能的灵活组合,并最大限度地提升系统性能。本文将探讨如何通过模块化设计,使得低代码平台既能快速适应变化,又能保持高效稳定的运行。

关键字: 模块化设计 嵌入式

CPU亲和度通过限制进程或线程可以运行的CPU核心集合,使得它们只能在指定的CPU核心上执行。这可以减少CPU缓存的失效次数,提高缓存命中率,从而提升系统性能。

关键字: Linux 嵌入式
关闭