基于qt的多媒体车载导航系统gps毕业论文(编辑修改稿)内容摘要:

QT 开发环境,可实现跨平台的编译,代码重用率高。 最重要的是开放的源码使开发成本降低。 、 GPS模块选择方案 方案一:采用串口接口 GPS 模块。 优点:便于驱动,价格便宜。 缺点:嵌入式 linux的调试需要用到串口,若 GPS 模块占用了串口会造成调试不便。 故不采 用 方案二:采用 usb接口 GPS模块。 优点:便于携带、连接开发板。 缺点:驱动相对较难、价格相对较贵。 为了便于调试和携带,采用 usb 接口 GPS 模块。 南华大学电气工程学院毕业论文 第 4 页,共 36 页 、显示模块设计方案 方案一:采用 LCD 显示。 液晶显示屏( LCD)具有轻薄短小,低耗电量。 但不能实现触摸功能,故不采用。 方案二:采用 TFT 显示。 TFT 屏幕带有四线式电阻触摸膜,能实现触摸功能、便于用户操作,故采用。 、地图文件存放方案 方案一:采用 s3c2440 核心板内置 nand flash 存放。 Nand flash 读取速度快。 但容量较 小,只有 128M,不适合存放大量地图数据,故不采用。 方案二:采用外置 sd 卡。 Sd 卡读取速度相对较慢,且会增加成本。 但能存放大量数据(1G~8G),地图更新升级也很方便。 故采用。 、总体方案确定 、系统硬件方案 表 名称 说明 CPU S3C2410, MPLL=200M FLASH 2M norflash + 64M Nand Flash SDRAM 64M USB 1个 USB Host 接口 , 标准 网口 10M 串口 2 个 3 线串口 SD卡接口 sd卡容量 1G I/O 8路 I/O LCD 寸 240*320 TFT 屏 触摸屏 4线电阻式触摸屏 GPS 模块 3 线串口接线 U 盘 容量 1~4G 南华大学电气工程学院毕业论文 第 5 页,共 36 页 、软件需求 表 软件需求 名称 说明 操作系统 开发工具 GNU 工具 启动代码 uboot 驱动程序 所有硬件驱动 文件系统 根文件系统采用 cramfs,用户文件系统采用 yaffs2 GUI QT 地图 百度地图 系统的硬件设计与实现 系统硬件采用友善之臂的 mini2440开发板。 Mini2440 体积小,便于携带;接口丰富,易于扩展;功耗低,便于长时间户外导航。 Mini2440 硬件特性如下图: 南华大学电气工程学院毕业论文 第 6 页,共 36 页 图 主控芯片电路 、 主控芯片电路 主控芯片为 s3c2440 的 6层核心板,该核心板性能稳定、工艺精良。 南华大学电气工程学院毕业论文 第 7 页,共 36 页 图 主控芯片电路 、 flash 芯片电路 flash 闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。 任何 flash 器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。 NAND 器件执行擦除操作是十分简单的,而 NOR 则要求在进行擦除前先要将目标 块内所有的位都写为 0。 由于擦除 NOR 器件时是以 64~ 128KB的块进行的,执行一个写入 /擦除操作的时间为 5s,与此相反,擦除 NAND 器件是以 8~32KB 的块进行的,执行相同的操作最多只需要 4ms。 执行擦除时块尺寸的不同进一步拉大了 NOR 和 NADN 之间的性能差距,统计表明,对于给定的一套写入操作 (尤其是更新小文件时 ),更多的擦除操作必须在基于 NOR 的单元中进行。 这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。 ● NOR 的读速度比 NAND 稍快一些。 ● NAND 的写入速度比 NOR快很多。 ● NAND 的 4ms 擦除速度远比 NOR 的 5s 快。 南华大学电气工程学院毕业论文 第 8 页,共 36 页 ● 大多数写入操作需要先进行擦除操作。 ● NAND 的擦除单元更小,相应的擦除电路更少。 、 Nand flash 芯片电路 Nand flash 是操作系统的程序存储区,该芯片掉电不丢失数据、寿命长,可反复擦写。 芯片容量 128M。 适合存放高密度数据结构 图 nand flash芯片 电路 、 nor flash 芯片电路 Norflash 是系统 BIOS 存储区。 该芯片掉电不丢失数据、寿命长,可反复擦写。 芯片容量 8M。 适合高速度、低数据密度的数据结构。 NOR flash 带有 SRAM 接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。 南华大学电气工程学院毕业论文 第 9 页,共 36 页 图 nor flash芯片电路 、 串口电路 采用 max3232 电平转换芯片与计算机通信。 图 串口电路 南华大学电气工程学院毕业论文 第 10 页,共 36 页 、 usb端口电路 采用 协议, usb 接口 是 用 来 连接 gps 模块。 图 usb端口电路 、 系统总线及 lcd 接口电路 图 lcd接口电路 南华大学电气工程学院毕业论文 第 11 页,共 36 页 、 电源 电路 系统的输入电压为 DC5VC,因此可以通过 、 LM11173 MAX8869EU18芯片来转换成系统需要的三种电压分别为: 、 、。 图 电源电路 系统的软件设计 、系统概述 本系统的所有程序均采用 C++语言编写,开发工具为 Qt,开发环境为 ubuntu。 应用软件开发的模块化思想来开发这个项目,程序定义了许多类来分别管理各个模块,通过对各个类的操作,来构建整个程序框架。 各个类对象即可单独提取出作为独立的一个有机代码,大大增加了 项目的健壮性及可移植性。 在将要进行的以下的代码介绍中一般只给出了定义,某些类的具体实现未给出。 、软件详细设计 、主函数 主函数,项目入口,用于启动其他模块,并在屏幕上显示主界面窗口。 南华大学电气工程学院毕业论文 第 12 页,共 36 页 ifndef MAINWINDOW_H define MAINWINDOW_H include QMainWindow include QCalendarWidget include include include include include /*namespace Ui { class MainWindow。 }*/ class MainWindow : public QMainWindow,public Ui::MainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0)。 ~MainWindow()。 public slots: void ShowMplayer()。 void ShowGps()。 void ShowMine()。 void ShowCalendar()。 void ShowEbook()。 private: //Ui::MainWindow *ui。 }。 endif // MAINWINDOW_H include QtGui/QApplication include int main(int argc, char *argv[]) { QApplication a(argc, argv)。 MainWindow w。 ()。 return ()。 } 南华大学电气工程学院毕业论文 第 13 页,共 36 页 、画布 定义画布,在此画布上进行图形界面的生成,绘制,画布也就相当于一个窗口界面。 我们所要展示的内容都通过画布产生界面,内容在该界面生成,并且予以显示。 ifndef MYCAVANS_H define MYCAVANS_H include QGraphicsScene include class MyCavans:public QGraphicsScene { Q_OBJECT public: explicit MyCavans(QObject *parent = 0)。 ~MyCavans()。 int pd(int x,int y) { if(x0||x9||y0||y9) return 0。 return 1。 } void changeblock(int x,int y) {pItem[x][y].changeMe()。 } protected: MyPixItem pItem[10][10]。 bool mineFlag[100]。 int mNum。 }。 endif // MYCAVANS_H 、位图元素 定义位图元素,具体绘画对象,以及在画布上对绘画对象的鼠标事件的回应。 ifndef MYPIXITEM_H define MYPIXITEM_H include QGraphicsPixmapItem include QObject class MyPixItem:public QGraphicsPixmapItem { public: MyPixItem()。 南华大学电气工程学院毕业论文 第 14 页,共 36 页 bool getMflag() {return mineflag。 } void changeMflag(bool m) {mineflag = m。 } void addM() {isMine++。 } void makex(int a) {x = a。 } void makey(int a) {y = a。 } static void addok() {okNum++。 } static int getok() {return okNum。 } void changeMe()。 int pd(int x,int y) { if(x0||x9||y0||y9) return 0。 return 1。 } signals: //void Pcheck(MyPixItem* p)。 protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)。 bool okflag。 bool mineflag。 bool markflag。 int isMine。 int x。 int y。 static int okNum。 }。 endif // MYPIXITEM_H 、 GPS类 定义 类 GPS,用来读取 GPS 接收器传来的数据,并进行分析处理,用于汽车定位等。 ifndef GPS_H define GPS_H include QDialog 南华大学电气工程学院毕业论文 第 15 页,共 36 页 //include namespace Ui { class gps。 } class gps : public QDialog { Q_OBJECT public: explicit gps(QWidget *parent = 0)。 ~gps()。 int gpsState。 void locate(float lng, float lat)。 protected: virtual void timerEvent ( QTimerEvent * event )。 private slots: void on_pushButton_clicked()。 private: Ui::gps *ui。 }。 int initGPS()。 void closeGPS()。 int getLngLat(float *longitude, float *latitude)。 endif // GPS_H include include include include include includesys/ includesys/ include include //in。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。