卫星通信手持终端毕业设计.docx
《卫星通信手持终端毕业设计.docx》由会员分享,可在线阅读,更多相关《卫星通信手持终端毕业设计.docx(61页珍藏版)》请在冰豆网上搜索。
卫星通信手持终端毕业设计
卫星通信手持终端
摘要
目前,大部分基层单位配发有数量不等的各类低速率野战卫星通信装备,大部分型号装备支持数据业务,但我们发现部队数据通信业务实际利用率很低,主要原因是没有专用数据通信软件和配套野外数据终端,以往部队开通使用数据通信业务,主要是使用操作系统自带的超级终端通信软件和台式机或笔记本电脑实施,存在功能单一、交互性差、收发的勤务报文内容混杂等问题,台式机或笔记本电脑作通信终端便携性、可靠性均比较差,无法适应野外环境条件下通指保障需求。
因此,急需研制一套全新的专用数据通信软件和适合野战卫星装备配套使用的通信终端,改善卫星数据通信应用环境条件,提高卫星通信数据业务保障能力
本次设计的卫星智能终端,主要用于军工企业里面进行可靠的实时通信,同时方便携带。
该装置主要以ARM11搭载Wince6.0操作系统同时外扩全键盘,触屏系统,蒙恬手写输入法,自主研发通信软件,开机软件自启动等功能,共同构建一个封闭的实时聊天通讯工具,本设计采用卫星通信MODEL和市场的GPRS同一个AT命令集,方便了通信方式的扩展,软件系统采用了游戏开发设计模式,采用心脏跳动运行原理才达到通信的自行运作,同时也使用状态机切换机制,来方便管理各个功能,整体架构易于扩充,方便修改来适应客户的需求,自主研发的外置全键盘采用了STM32微处理器搭载UCOSII操作系统来实现多按键识别和USB接口定义,与外面的固定芯片相比具有可定制性,同时接口采用了市场比较流行的USB通信方式,因此可以快速的运用的其他类似的项目当中,为以后的项目开发打下坚实的基础,此键盘装置还可以实现类似的按键连发功能等一系列外面市场键盘的功能基本都可以实现,通过微软自带的内核编译集成工具和飞凌嵌入式的驱动源码,可以方便的精简自己的wince操作系统,设备也就可以做得等小巧精致.
关键词:
Wince系统;USB接口通用键盘;通讯聊天软件;AT命令集;数据链路层
Abstract(需修改)
ThissystemwithSTC89C52micro-controllerascollectionoperationandcontrolofthecoredevice,partlythroughahallsensorswillspeedthetreadmillrelativelyhallsensorrotationaxisintoasinglechipcanidentifythepulsesignalandcount,thetemperatureofthetemperaturesensorsignalintoelectricalsignalstemperaturetoasingle-chipmicrocomputer,SCMarecalculatedandconvertedtotemperaturewithadigitalpipedisplay.
Inthistopic,thetemperaturesensorusingdirectdigitaloutputoftheDS18B20sensor,Holzer144compareitwithotherconversionmodulestogether,throughthetransformationtemperaturearetransmittedtothehostPCdisplaytemperature.
ThissystemwillcommandlinethroughtheISPdownloaddirectlyintotheSTC89C52insinglechipmicrocomputerdownload,allordersareinsidetheSTC89C52completed,thereforehastheadvantageofsimplestructure,highstability,smallinvestment.DuetotheuseofKEILprogrammingofthesystem,andtheprogramdesignalsoneednottootrivial,canbeproducedinlargequantitiesfortheusertouseanauxiliarymeasuringdevice.
KEYWORDS:
Speedmeasurement;Temperaturemeasurement;Singlechipmicrocomputer;Hallsensors;Temperaturesensor
1绪论
1.1课题研究的目的及意义
随着移动技术与智能PDA设备的迅猛发展,中国已经跨步进入移动信息化社会。
移动商务是移动信息社会的重要载体与形式,它开拓了更大自由、高效便捷的商务环境,任何人(Anyone)在任何地点(Anywhere)任何时间(Anytime)都有条件进行移动作业、信息沟通与智能商务。
基于这样条件,基于多年的努力与行业研究,军工企业也急需一个移动智能终端进行业务部门之间的通信,从而实现简洁方便有效的沟通。
移动智能终端系统,是针对零售行业设计的软硬件一体化集成的移动解决方案,它是一个运行在智能终端(PDA)平台上,基于WinCE(或WinMobile)嵌入式操作系统的应用,它主要集成了移动通信等强大功能,使军工企业彻底摆脱有线缆的作业束缚,实现高效移动通信的卫星智能终端系统。
1.2卫星终端装置国内外现状
目前国外较为先进的基于网络的类似软件为MSN,SKYPE,另外有一款SIMPLYBITWARE软件可以实现基于MODEM的即时通信。
中国市场上的时通信工具主要包括:
腾讯公司的QQ、RTX、IBM公司的LotusSametime、微软公司的UC、点击科技的GKE、中国互联网办公室的IMO、红杉树公司的EasyTouch、亿企通的Jingoal等。
本软件实现了文字、文件传输,字体格式设置等即时通信类软件主要功能,已经达到了国内外此类软件的先进水平,并且数据校验技术易于实现、快速准确;格式控制采用统一的模式,数据传送稳定。
近年来,随着军事企业对便携性设备要求的逐步提高,国家投入大量的资金进行智能终端的开发,因此卫星智能终端由于其行业的专业性和其特殊性,急需大量的人力物力进行强有力的开发,来供应国家的对通讯设备开发的需求.
嵌入式系统中人机交互突出且重要,Wince和Linux系统也逐渐流行,然而需要wince系统和linux系统驱动开发门槛甚高,对于普通高校的开发者,很难快速制作出USB键盘,一种应用STM32制作可定制的USB键盘,首先它比一般的固定USB接口芯片更加简单方便,利用软件的灵活易修改,大大的提高矩阵键盘的通用性.
1.3本课题的主要研究内容
课题研究内容主要分为两部分:
第一部分:
可定的通用性键盘设计,目前,PC/104与PC机之间的通讯一般是以串行通讯或者并行通讯两种方式来实现的,然而USB通讯正以其高速性和连接灵活性等优点而被广泛关注,本文介绍了一种运用STM32制作可定制的USB键盘,其中在嵌入式wince和linux领域具有较高的通用性和灵活性,同时运用现在USB通信在工业领域运用相当普遍,使用STM32能够快速的开发出相关USB通信设备
第二部分:
可靠的数据通信软件实现,为了能够方便快捷的军事部门之间的通信,因此需要实现基于AT命令集的串口通信终端,此终端只需要外接GPRS模块变可进行可靠的远程数据通信.软件系统基本实现的计算机网络的数据链路层协议,同时整个系统可以快速的进行扩展,重新构建新的应用设计
2系统的总体设计
2.1系统的组成
系统的组成如图2-1所示,通用性矩阵键盘系统框图
图
通信软件系统设计框图
图2-1系统组成框图
2.2系统的工作过程
矩阵键盘输入模块运用UcosII操作系统,分别给电源管理系统,矩阵扫描系统,
工作指示系统,USB接口系统开辟相关的任务,任务之间通过信号量进行任务进行同步,矩阵键盘每次将整体进行扫描一遍,对按键进行相关处理放入缓冲区,USB接口系统通过获取缓冲区的数据,找到对应字母的USBHID设备码,进行数据通信,将字符通知给Wince设备,从而达到了可定制的键盘的功能,
图2-2wince键盘示意图
软件的设计运用嵌入式行业比较流行的Wince操作系统,通过VS2005编译产生想对应的内核,通过Cserialport类操作对应的串口硬件,同时通过CserialSystem对串口进行对应的系统控制,同时提供读写接口,中间数据链路层实现FIFO,字符填充定界,帧格式控制,流量控制等一系列方法来实现可靠的数据通信.顶层UI界面层包扩
文本信息显示UI,状态信息显示UI
此处填图(软件界面)
2.3系统硬件设计
WinCE键盘总体电路设计如下图所示:
图2-3总体电路图
2.4模块介绍
2.4.1键盘电源供电部分
对于STM32系列的ARM处理器来说,市场上已经比较流行使用专用的电源转换芯片,为了达到整个系统的稳定,采用了滤波处理,系统供电部分:
LT117三端可调线性稳压芯片其输出电流可达800mA同是采用SOT-223封装体积小节省空间,输入端和输出端分别接入100nF和10uF电容进行滤波来使电压纹波小,并且运用LT1117使电压稳定到3.3V给系统供电如下图:
图2-4键盘供电系统
2.4.2键盘时钟电路
STM32F有三种不同的时钟源可被用来驱动系统时钟(SYSCLK):
●HSI振荡器时钟
●HSE振荡器时钟
●PLL时钟
这些设备有以下2种二级时钟源:
●32kHz低速内部RC,可以用于驱动独立看门狗和RTC。
RTC用于从停机/待机模式下自动唤醒系统。
●32.768kHz低速外部晶体也可用来驱动RTC(RTCCLK)。
对于键盘为了尽量保持低功耗,STM32F的各个模块时钟独立,任一个时钟源都可被独立地启动或关闭,由此优化系统功耗
图2-5复位和时钟电路
2.4.3键盘复位电路
STM32F支持三种复位形式,分别为系统复位、上电复位和备份区域复位
当NRST管脚上的低电平或窗口看门狗计数终止或独立看门狗计数终止或软件复位或低功耗管理复位情况下将产生一个系统复位,在进行系统设计时应小心管理和利用这些复位事件来让系统长期工作,外部复位硬件电路图如1.硬件电路图所示
图2-6复位电路
2.4.4USB接口模块电路
USB接口引脚说明1VCC(+5VDC)2D-(data-)3D+(data+)4GND(Ground)
(5.6引脚为外壳引脚、起固定和减低干扰作用)
根据USB1.1官方协议可知,USB为主从设备区分是有硬件电路实现的,USBHID设备属于从设备,USB上拉电压接在D+线上,所以本设计USB实现全速通讯,USBLC6-2P6是一个ESD芯片,为了防止USB接口受到雷击时毁坏主芯片,Q1为一个开关芯片,可以为mos管、或三极管,系统采用nmos管时,DS间有一个0.7V的压差,所以USB的上拉电压为2.5V左右,虽然也能用,但毕竟不完美,当开关开启时,PC开始枚举该USB设备,本系统采用PC机或PDA手持为USB接口供电
2.4.5矩阵键盘模块
图2-7
图2-8
传统的矩阵的键盘识别方法为扫描法和线反转法,传统的方法只能识别单个按键如果按照传统的硬件电路设计
图2-9
由上图可知当双按键按下时产生了线与逻辑冲突,本系统对传统设计方法进行改进采用行输出为开漏输出,列输入外界10K的上拉电阻当双按键按下时1和0线与产生0这样有效的识别了双按键,如图
图2-10改进型矩阵键盘设计
2.4.6设计串行系统类图设计
串行系统通过单例模式继承,从而保持了串行系统在整个系统当中的独立性,同时串行系统留下统一的接口,让初开发人员快速的使用该系统进行开发,行为包含读取和保存相关的配置文件
图2-11串行系统成员函数及方法
2.4.7数据链路系统类图设计
数据链路系统实现了字符填充定界法,及其逆解析,帧处理和过滤系统,同时实现了分流系统,对于不同的帧放入不同的系统缓存队列,同时提交个上层系统显示相关的信息和数据
图2-11数据链路系统成员函数及成员变量
2.4.8UI系统类图设计
UI系统主要完成文本信息的显示和状态信息的显示方便的提示用户自己的操作所产生的行为,同时本系统易于扩充和重构,后期改造变可跨平台
UI系统类成员函数及成员变量
3相关器件与软件介绍
3.1STM32处理器介绍
Cortex‐M3是一个32位处理器内核。
内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。
CM3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。
这样一来数据访问不再占用指令总线,从而提升了性能。
为实现这个特性,CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。
但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。
比较复杂的应用可能需要更多的存储系统功能,为此CM3提供一个可选的MPU,而且在需要的情况下也可以使用外部的cache。
另外在CM3中,Both小端模式和大端模式都是支持的。
具有杰出的功耗控制以及众多的外设,最重要的是其性价比,同时还具有以下特性:
•性能强劲.在相同的主频下能做处理更多的任务,能够支持UCOSII操作系统。
•功耗低.延长了电池的寿命,有利于做低功耗设备增强自己的产品优势
•实时性好.采用了很前卫甚至革命性的设计理念,使它能极速地响应中断,而且响应中断所需的周期数是确定的。
•代码密度得到很大改善.一方面力挺大型应用程序,另一方面为低成本设计而省吃俭用
•使用更方便.现在从8位/16位处理器转到32位处理器之风刮得越来越猛,更简单的编程模型和更透彻的调试系统,为与时俱进的人们大大减负。
•低成本的整体解决方案.让32位系统比和8位/16位的还便宜,低端的Cortex‐M3单片机甚至还卖不到1美元。
•遍地开花的优秀开发工具。
免费的,便宜的,全能的,要什么有什么。
3.1.1STM32互联型产品OTG_FS控制器
图3-1STM32USB接口设计框图
STM32为开发者提供了相对应的USB接口:
OTG_FS控制器符合USB2.0规范以及衍生的OTG1.3规范。
OTG_FS控制器支持全速和低速两种通信速率。
OTG_FS内置的硬件PHY支持SRP(会话请求协议)和HNP(主机协商协议)协议。
OTG_FS可以工作在主机模式,设备模式和OTG模式下,也就是说利用STM32的OTG_FS可以设计一个USB设备,或是设计一个USB主机,也可以设计一个OTG设备。
OTG_FS控制器在设备模式下提供4个双向端点,支持我们前面所说的四种传输类型,分别是控制,大容量,中断和同步传输。
OTG_FS控制器在主机模式下提供8个通道,也支持四种传输类型。
STM32互联型产品内置了1.25K字节的专用SRAM,可根据应用的实际情况划分为各种FIFO,同时配合高级的FIFO管理机制,实现高效,优化的FIFO管理。
OTG_FS控制器内置高级的硬件请求调度器,提供周期性请求和非周期性请求两个请求队列,针对周期性传输和非周期性传输,可以同时管理高达16个传输请求。
需要外接电源为VBUS供电。
内核控制器通过32位的模式来存取访问各类寄存器和数据FIFO。
SOF信号在内部连接到TIM2,为需要的应用提供同步的脉冲信号。
3.2OK6410开发板介绍
飞凌嵌入式出品的OK6410开发板采用三星6410处理器,ARM1176JZF-S内核,主频533MHz/667MHz,帮助自己快速的学会了内核编译,输入法嵌入,自启动程序的嵌入,硬件裁剪等开发比较常用的功能,同时站在巨人的肩膀上干活,大大提高了项目的开发进度.
3.3UCOSII操作系统
3.3.1UCOSII实时操作系统介绍
uCOSII是一个占先式的内核,即已经准备就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权。
这个特点使得它的实时性比非占先式的内核要好。
通常我们都是在中断服务程序中使高优先级任务进入就绪态(例如发信号),这样退出中断服务程序后,将进行任务切换,高优先级任务将被执行。
拿51单片机为例,比较一下就可以发现这样做的好处。
假如需要用中断方式采集一批数据并进行处理,在传统的编程方法中不能在中断服务程序中进行复杂的数据处理,因为这会使得关中断时间过长。
所以经常采用的方法是置一标志位,然后退出中断。
3.3.2UCOSII任务
图3-2
UCOSII中每个任务都是一个无限的循环。
每个任务都处在以下5种状态之一的状态下,这5种状态是休眠态,就绪态、运行态、挂起态(等待某一事件发生)和被中断态(参见图2.3休眠态相当于该任务驻留在内存中,但并不被多任务内核所调度。
就绪意味着该任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。
运行态的任务是指该任务掌握了CPU的控制权,正在运行中。
挂起状态也可以叫做等待事件态WAITING,指该任务在等待,等待某一事件的发生,(例如等待某外设的I/O操作,等待某共享资源由暂不能使用变成能使用状态,等待定时脉冲的到来或等待超时信号的到来以结束目前的等待,等等)。
最后,发生中断时,CPU提供相应的中断服务,原来正在运行的任务暂不能运行,就进入了被中断状态。
图2.3表示μC/OS-Ⅱ中一些函数提供的服务,这些函数使任务从一种状态变到另一种状态。
3.4WINCE6.0介绍
WindowsEmbeddedCE6.0作为业内领先的软件工具,为多种设备构建了实时操作系统,同时微软提出了wince源码开发计划,微软还将VisualStudio2005专业版作为WindowsEmbeddedCE6.0的一部分一并推出。
VisualStudio2005专业版将包括一个被称为PlatformBuilder的功能强大的插件,它是一个专门为嵌入式平台提供的“集成开发环境”。
这个集成开发环境使得整个开发链融为一体,并提供了一个从设备到应用都易于使用的工具,极大地加速了设备开发的上市。
3.5矩阵键盘介绍
为了实现USB接口全键盘,为了节省IO口资源,本设计采用了8X8的矩阵键盘,同时利用UCOSII操作系统开辟相关键盘处理任务,矩阵键盘识别方法多种多样:
<1>确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。
1、判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
2、判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
<2>确定矩阵式键盘上何键被按下介绍一种“高低电平翻转法”。
首先让P1口高四位为1,低四位为0,。
若有按键按下,则高四位中会有一个1翻转为0,低四位不会变,此时即可确定被按下的键的行位置。
然后让P1口高四位为0,低四位为1,。
若有按键按下,则低四位中会有一个1翻转为0,高四位不会变,此时即可确定被按下的键的列位置。
最后将上述两者进行或运算即可确定被按下的键的位置。
为了实现多按键同时按下识别,本设计采用了类似于行扫描法的例子,每次扫描都会对整个键盘进行全扫描,然后进行数据拆分和处理识别出相应的多按键
3.6相关软件介绍
3.6.1编程与调试软件介绍KEIL
KEILARM标准C编译器为ARM微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。
ARM已被完全集成到uVision4的集成开发环境中,这个集成开发环境包含:
编译器、汇编器、实时操作系统、项目管理器、调试器。
uVision4IDE可为它们提供单一而灵活的开发环境。
KEILforARM版本是目前最高效、灵活的ARM开发平台。
它可以支持所有ARM的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。
使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。
KEIL是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的Cortex-M3架构的芯片,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
KeilforARM软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilforARM生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
3.6.2JTAG调试器介绍
JTAG协议介绍
JTAG是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。
现今多数的高级器件都支持JTAG协议,如DSP、FPGA、ARM、部分单片机器件等。
标准的JTAG接口是4线:
TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
相关JTAG引脚的定义为:
TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。
STM32处理器提供了串口下载的功能的同时还提供了JTAG边界扫描调试技术,放便了开发者进行软件的调试,大大的降低了嵌入式软件开发的难度,同时JTAG调试器已经与KEIL集成到一起,易用的调试界面,变量观察,堆栈查看器降低了初学者的门槛
3.6.3VS2005集成开发环境
VisualStudio2005是基于.NET2.0框架的。
它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。
总体来说是一个非常庞大的软件,甚至包含代码测试功能.同时Wince内核可以通过BSP插件,方便了开发者自己编译相关的Wince内核,同时还提供了微软同步工具,可以在软件在开发运行的同时,输出调试信息方便了我们实时调试,VS2005的调试界面简单易用方便观察,许多优秀的外围插件为开发者提供了代码提示功能,UML图转化为,使开发者只需专注于代码