资源描述
毕业论文基于单片机的GPS通信专业名称:班 级:学生姓名:指导老师:完成时间:6摘要随着GPS 用户设备价格的不断下降和GPS 应用研究的不断深入, 大量GPS 用户设备已用于舰船、飞机的导航、导弹卫星测控、精密授时、作战训练、石油资源开发等方面。近年来, 车辆的跟踪和导航、农业、公安和旅游等也纳入GPS 的应用范围。本人毕业设计采用了单片机扩展的方式, 并利用单片机作为中间媒介向微机提供信息服务。采用了型号为80C51 的单片机与Garmin 公司的GPS25 产品和“Jupiter”GPS-OEM板接收机相连接, 80C51 接收GPS接收机发送的数据,与接收机之间进行通信。将OEM板输出的信息,利用计算机进行数据采集、图象处理、坐标系统变换,再加上无线通信技术、并行数据库技术、网络等技术,即组成GPS 应用系统。本文介绍了GPS-OEM 板的组成和特点,以Garmin 公司的GPS25 产品和“Jupiter”GPS-OEM板为例,与单片机串行通信相结合,阐述了如何利用单片机来实现与GPS-OEM 板的通信功能。详细介绍了GPS与单片机通信的实现方法,GPS系统的组成和GPS接收机的工作原理,并介绍了GPS-OEM板的结构,单片机的结构和特点,数据处理,等等,对GPS及其定位技术应用的研究和GPS OEM板的二次开发有很好的帮助作用。关键词 GPS接收机;单片机;通信AbstractWith the price of GPS user equipment falling and GPS application research, a GPS device has been used for ships, users of the aircrafts navigation, missiles, satellites, and precise control of petroleum resources exploitation operations, etc. In recent years, the vehicle tracking and navigation, agriculture, public security and tourism also included the application scope of GPS.I am a graduate design adopted MCU expansion, and USES single chip microcomputer as intermediary to provide information service. Using the 80C51 SCM and the model for the GPS25 Garmin company products and Jupiter GPS receivers connected - OEM plate 80C51 GPS receivers, sending data, and the receiver. Will the information output, OEM board using computer data acquisition, image processing, coordinate system transformation, plus wireless communication technology, parallel database technology, network technology, application system composed of GPS.The text introduces the composition and characteristics of the GPS - OEM board. With the GPS25products of the company Garmin and Jupiter GPS - OEM board for example, combined with SCM serial communication, expounds how to realize the communication function with SCM and GPS - OEM. Chore is OEM4-G2 OEM-board and single chip processor. The design project of the GPS receivers and the design method of hardware and software are presented in detail, and the consists of GPS system and the composition and the operating principle of the GPS receiver are discussed in the thesis. Some message described in the thesis, such as the basic structure of GPS-OEM and single chip processor, the consists of positioning system, the method and the skill of processing original data through single chip ,and so on, is very useful for studying GPS and its applications in integrated navigation, and re-development on GPS-OEM. KEY WORDS GPS receivers, SCM, communication目 录1绪论11.1 引言11.2 研究重点11.3 研究的意义22系统总体设计22.1系统框架22.2 总体设计思想32.3 单片机概述32.31单片机主流产品系列32.3.2 单片机型号选择42.3.3 单片机的应用领域42.4 MCS-51的内部结构52.4.1 MCS-51的内部总体结构52.4.2 MCS-51的引脚描述72.4.3 存储器配置72.4.4 输入/输出端口102.4.5 定时器/计数器102.4.6 串行接口122.4.7 中断132.5 抗干扰复位172.6 晶振172.7 8251可编程串行接口芯片182.7.1 8251A与CPU的连接信号182.7.2 8251A 与外部设备之间的连接信号192.7.3. 时钟、电源和地202.8 74ls373213. GPS系统原理概述223.1 GPS的组成223.1.1 GPS空间部分233.1.2 地面监控部分243.1.3 用户设备部分243.2 GPS接收机及其工作原理253.2.1 GPS接收原理253.2.2 GPS接收机概述253.2.3 GPS接收机工作原理273.3 “Jupiter” GPS/OEM板283.4 GARMIN公司的GPS25板293.5 GPS-OEM板的组成与原理313.6GPS-OEM板输出数据格式313.6.1 GPS-OEM 板的输出信号313.6.2 NMEA-0183 的语句格式324.GPS-OEM 板与MCS-51 单片机的信息交换344. 1设计要求344. 2分析344. 3设计354. 3. 1 硬件连接354. 3. 2 软件实现355. 结束语37致谢38参考文献38基于GPS的单片机通信1绪论1.1 引言GPS 是英文Navigation Satellite Timing and Ranging GlobalPosit ion System 的字头简称。它利用导航卫星为全球用户提供实时的、高精度的三维速度的时间信息。随着GPS 用户设备价格的不断下降和GPS 应用研究的不断深入, 大量GPS 用户设备已用于舰船、飞机的导航、导弹卫星测控、精密授时、作战训练、石油资源开发等方面。近年来, 车辆的跟踪和导航、农业、公安和旅游等也纳入GPS 的应用范围。在GPS 接收机的二次开发过程中, 我们采用了单片机扩展的方式, 并利用单片机作为中间媒介向微机提供信息服务。我们采用了型号为80C51 的单片机与Garmin 公司的GPS25 产品和“Jupiter”GPS-OEM板接收机相连接, 80C51 接收GPS接收机发送的数据,与接收机之间进行通信。GPS 接收机的OEM(Original Equipment Manufacturer) 板,以其优良性能、轻巧灵便、易于开发的特点,现已在GPS 各领域得到广泛应用。将OEM板输出的信息,利用计算机进行数据采集、图象处理、坐标系统变换,再加上无线通信技术、并行数据库技术、网络等技术,即组成GPS 应用系统。近年来,Ashtech ,Trimble ,Motorola ,Novtatel ,Gamin 等公司都推出了自己的GPS 接收机产品。本文以Garmin 公司的GPS25 产品和“Jupiter”GPS-OEM板为例,与单片机串行通信相结合,阐述了如何利用单片机来实现与GPS-OEM 板的通信功能。1.2 研究重点MCS-51单片机的研究与开发是本次设计的重点,它不光是程序控制模块,也是连接GPS-OEM板的重要模块。单片微型计算机简称单片机。它是把组成微型计算机的各功能部件:中央处理器CPU、随机存储器RAM、只读存储ROM、I/O接口电路、定时器/计数器以及串行通讯接口等部件制作在一块集成芯片中,构成一个完整的微型计算机。通过运行事先编制好并写入其中的程序,将OEM板输出的信息,利用计算机进行数据采集、图象处理、坐标系统变换,再加上无线通信技术、并行数据库技术、网络等技术,即组成GPS 应用系统。这就是基本的程序运行流程。当然程序的设计与开发离不开对单片机的深入认识。1.3 研究的意义移动定位与导航随GPS技术的成熟与广泛应用而变的日益迫切,无线通信技术的日益成熟与产品的推陈出新成为无线数据产品和因特网(Internet)在人类生活中的一种弥补和延伸,更重要的是满足了人们“随处定位”的愿望。本论文的意义在于将移动通信技术应用到传统的空间信息服务中,将革命性的改变传统的基于位置的服务机制,使作为主体的人、作为客体的真实世界以及经由网络传输的数字世界三者无缝的结合起来,实现不受任何时间和空间局限的互动,最终目的是根本性地改变人与数字地球、人与现实世界的交互方式,能够为任何基于空间的作业系统如导航、数字战场、野外采样、物流管理、智能交通、旅游、资源管理、娱乐等提供全新的作业模式。2系统总体设计2.1系统框架MCS-51 单片机与OEM 板之间选用8251 可编程串行接口芯片, 8251的RXRDY 和TXRDY 逻辑组合后, 作为单片机的外部中断请求源, 电平转换器采用MAX232 芯片。MCS-51 单片机编程串行接口芯片电平转换器GPS-OEM 板逻辑模块外部中断请求模块图2-1 系统总体框图2.2 总体设计思想在GPS 接收机的二次开发过程中, 我们采用了单片机扩展的方式, 并利用单片机作为中间媒介向微机提供信息服务。我们采用了型号为80C51 的单片机与Garmin 公司的GPS25 产品和“Jupiter”GPS-OEM板接收机相连接, 80C51 接收GPS接收机发送的数据,与接收机之间进行通信。GPS 接收机的OEM(Original Equipment Manufacturer) 板,以其优良性能、轻巧灵便、易于开发的特点,现已在GPS 各领域得到广泛应用。将OEM板输出的信息,利用计算机进行数据采集、图象处理、坐标系统变换,再加上无线通信技术、并行数据库技术、网络等技术,即组成GPS 应用系统。2.3 单片机概述2.31单片机主流产品系列MCS-51单片机是美国INTEL公司于1980年推出的产品,典型产品有8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品。一直到现在,MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。其他公司的51单片机产品都是和MCS-51内核兼容的产品。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51,PHILIPS(菲利浦),和WINBOND(华邦)等,现在,89S51目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel目前公司已经停产AT89C51,将用AT89S51代替。89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。89SXX可以像下兼容89CXX等51系列芯片。同时,Atmel不再接受89CXX的定单,大家在市场上见到的89C51实际都是Atmel前期生产的巨量库存而已。2.3.2 单片机型号选择89S51相对于89C51增加的新功能包括:ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离,这是个强大易用的功能;最高工作频率为33MHz,从而具有了更快的计算速度;有双工UART串行通道;内部集成看门狗计时器;双数据指示器;电源关闭标识;全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。本次项目主控单元采用的是AT89S52,51跟52的主要区别在于,多了一个定时器2,RAM变成256byte,FLASH变成8k。另外,串行通信扩展模块采用的是AT89C2051,2051与S51的主要区别在于2051引脚较少,只有20根,相应的占PCB面积小。并且2051价格低廉,从目前市场上的价格来看仅是S52的一半还不到,在同样可以满足系统要求的情况下,我们首选了2051。2.3.3 单片机的应用领域单片机主要应用领域有:智能化电器;办公设备;商业营销设备;工业自动化控制;智能化仪表;智能化通信产品:其中最突出的是手机,手机内的芯片属专用型单片机;汽车电子产品;航空航天系统和国防军事、尖端武器等领域。其实单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。以前采用硬件电路实现的大部分控制功能,现在可以采用单片机通过软件方法来实现。这种以软件取代硬件并能提高系统性能的控制技术称为微控技术。随着单片机应用的推广,微控制技术将不断发展完善。2.4 MCS-51的内部结构2.4.1 MCS-51的内部总体结构MCS-51单片机的内部基本组成如下:中央处理单元CPU:包括运算器和控制器两部分电路;内部程序存储器:用于存放程序和原始数据;内部数据存储器:用于程序运行中存储工作变量和数据;并行输入/输出口:用作系统总线、扩展外存、I/O接口芯片;定时器和计数器:用于实现计数和定时功能;串行输入/输出口UART:可以实现串行通信、扩展I/O接口芯片;中断控制:单片机提供五个中断源、两级优先,可编程进行控制;时钟电路:分为内部振荡器、外接振荡电路。PSWALE/PROGPSENEA/VppRST外接晶振OSCP1.0-P1.7P3.0-P3.7PORT 3 DRIVERSPORT 1 DRIVERSPORT 1LATCHPORT 3LATCHINSTRUCTIONREGISTERTIMINGANDCONTROLINTERRUPT,SERAL,PORT,AND,TIMER CLOCKSALUTMP2TMP1BREGISTERACCSTACKPOINTERGNDVCCP0.0-P0.7P2.0-P2.7FLASHPORT 2 DRIVERSPORT 0 DRIVERSPORT 2LATCHPORT 0LATCHRAMRAM AODRREGSTERPROGRAMADDRESSREGISTERDPTRPROGRAMCOUNTERPCINCREMENTERBUFFER图2-2 单片机的内部结构总体框图2.4.2 MCS-51的引脚描述图22显示的是主流MCS-51单片机的引脚配置图。引脚可分为以下四类:1主电源引脚VCC和VSS2外接晶振引脚XTAL1和XTAL23控制或其他电源复用引脚RST/VPD、ALE/、和/VPP4输入/输出引脚P0、P1、P2、P3(共32根)图2-3 MCS-51单片机的引脚配置图2.4.3 存储器配置MCS-51的存储器采用哈佛结构,即程序存储器和数据存储器的寻址空间是分开的,对51系列而言,有四个物理上相互独立的存储器空间,即内外程序存储器,内外数据存储器。物理上分为:4个空间,即片内ROM、片外ROM、片内RAM、片外RAM逻辑上分为:3个空间,即程序内存(片内、外)统一编址数据存储器(片内)数据存储器(片外)(1).程序存储器一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。MCS-51具有64KB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。51片内有4KB的程序存储单元,其地址为0000H0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意:其中一组特殊是0000H0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。另一组特殊单元是0003H002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:0003H000AH外部中断0中断地址区。000BH0012H定时/计数器0中断地址区。0013H001AH外部中断1中断地址区。001BH0022H定时/计数器1中断地址区。0023H002AH串行中断地址区。可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,每段只有8个地址单元是不能存下完整的中断服务程序的,因而一般也在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。(2).数据存储器数据存储器也称为随机存取数据存储器。MCS-51单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个是内部数据存储区和一个外部数据存储区。MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。一般的51单片机内部RAM共有256个单元,这256个单元共分为两部分。其一是地址从00H7FH单元(共128个字节)为用户数据RAM。从80HFFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。从下图中可清楚地看出它们的结构分布。只能字节寻址可字节寻址亦可 位寻址全部可位寻址共16个字节128位4组通用寄存器R0-R7也可作RAM使用,R0、 R1亦可位寻址FFH80H7FH20H2FH00H20H1FH特殊功能寄存器区(SFR)数据缓冲区堆栈区工作单元位寻址区3区2区1区0区2-4 内部RAM分配图在00H1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0R7来命名,我们常称这些寄存器为通用寄存器。CPU只要定义这个寄存的PSW的第3和第4位(RS0和RS1),即可选中这四组通用寄存器。对应的编码关系如图表21所示。表2-1 PSW与工作寄存器关系PSW.4 (RS!)PSW.3(RS0)工作寄存器区000区00H07H011区08H0FH102区10H17H113区18H1FH特殊功能寄存器(SFR)也称为专用寄存器,特殊功能寄存器反映了MCS-51单片机的运行状态。9很多功能也通过特殊功能寄存器来定义和控制程序的执行。MCS-51有21个特殊功能寄存器,它们被离散地分布在内部RAM的80HFFH地址中,这些寄存器的功能已作了专门的规定,所以用户不能修改其结构。内部RAM的20H2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H7FH。CPU能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。2.4.4 输入/输出端口MCS-51单片机有4个双向并行的8位I/O口P0P3,P0口为三态双向口,可驱动8个TTL电路,P1、P2、P3口为准双向口,其负载能力为4个TTL电路。P0.0P0.7(3932脚):8位漏极开路的三态双向输入/输出口。可作为一般的I/O口使用,也可作为数据线、地址线使用。P1.0P1.7(18脚):8位带有内部上拉电阻的准双向输入/输出口。P1口通常作为通用I/O口使用。作为输出口时,由于电路内部已经带上拉电阻,因此P1 P2 S1 P2指令周期机器周期S2S3 S4 S5 S6 S1 S2 S3 S4S5 S6P1 P2 P1 P2 P1P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2XTAL2(OSC)振荡周期时钟周期无需外接上拉电阻;作为输入口时,也需先向锁存器写入“1”。是一个标准的I/O口。本次项目中就是利用他们进行模拟串行通信。P2.0P2.7(2128脚):8位带有内部上拉电阻的准双向输入/输出口。P2口可作为通用I/O口使用,也可作为高位地址线使用的。P3.0P3.7(1017脚):8位带有内部上拉电阻的准双向输入/输出口。P3口可作为通用I/O口使用,也可作为第二功能需要来用的。对于P3口,实际上,都是先按需要选取第二功能,多余的再作为输入输出口使用2.4.5 定时器/计数器MCS-51的单片机内有两个16位可编程的定时/计数器,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。定时器在本次项目中需要用到地方较多。MCS-51单片机内部的定时/计数器的结构如图所示:图2-5 MCS-51单片机定时/计数器结构图定时器T0由特殊功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特殊功能寄存器TL1(低8位)和TH1(高8位)构成。特殊功能寄存器TMOD控制定时寄存器的工作方式,TCON则用于控制定时器T0和T1的启动和停止计数,同时管理定时器T0和T1的溢出标志等。程序开始时需对TL0、TH0、TL1和TH1进行初始化编程,以定义它们的工作方式和控制T0和T1的计数。TMOD和TCON这两个特殊功能寄存器的格式参见下表:表2-2 定时/计数器的方式控制字TMODD7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0TI方式字段TO方式字段表2-3 定时器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0MCS-51的定时/计数器共有四种工作方式,我们将逐个了解下,并着重介绍本次项目采用的工作方式2。工作方式0:定时/计数器0的工作方式0是13位计数结构的工作方式,其计数器由TH的全部8位和TL的低5位构成,TL的高3位没有使用。定时时间的计算公式为:(213计数初值)晶振周期12或(213计数初值)机器周期,其时间单位与晶振周期或机器周期相同。工作方式1:方式0和方式1的区别仅在于计数器的位数不同,方式0为13位,而方式1则为16位,由TH0作为高8位,TL0为低8位,定时时间的计算公式为:(216计数初值)晶振周期12或(216计数初值)机器周期。工作方式2:当M1M0=10时,定时/计数器处于工作方式2.此时定时器的等效电路如图25所示。我们以定时/计数器0为例,定时/计数器1与之完全一致图2-6 定时/计数器工作方式2等效电路工作方式0和工作方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度,工作方式2就针对这个问题而设置,它具有自动重装载功能,即自动加载计数初值,所以也有的文献称之为自动重加载工作方式。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给计数器TL0重新加载。但这种方式也有其不利的一面,就是这样一来的计数结构只有8位,计数值有限,最大只能到255。所以这种工作方式很适合于那些重复计数的应用场合。例如我们可以通过这样的计数方式产生中断,从而产生一个固定频率的脉冲。也可以当作串行数据通信的波特率发送器使用。本次项目中的波特率就采用T1的方式二产生。工作方式3:在工作方式3模式下,定时/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。TH0就没有那么多“资源”可利用了,只能作为简单的定时器使用,而且由于定时/计数器0的控制位已被TL0占用,因此只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。2.4.6 串行接口MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。常用于数据通信的传输方式有单工、半双工、全双工和多工方式。2.4.7 中断单片机中CPU只有一个,但在同一时间内可能会面临着处理很多任务的情况,如运行主程序、数据的输入和输出,定时和计数时间已到要处理、可能还有一些外部的更重要的中断请求(如超温超压)要先处理。此时也得象人的思维一样停下某一样(或几样)工作先去完成一些紧急任务的中断方法。这样的处理方法上升到计算机理论,就是一个资源面对多项任务的处理方式。由于资源有限,面对多项任务同时要处理时,就会出现资源竞争的现象。中断技术就是为了解决资源竞争的一个可行的方法,采用中断技术可使多项任务共享一个资源。MCS-51提供了5个中断源,两个中断优先级控制,可实现两个中断服务嵌套。11当CPU支持中断屏蔽指令后,可将一部分或所有的中断关断,只有打开相应的中断控制位后,方可接收相应的中断请求。程序设置中断的允许或屏蔽,也可设置中断的优先级。图2-7 MCS-51中断系统结构等CPU响应中断请求后,就立即转入执行中断服务程序。不同的中断源、不同的中断要求有不同的中断处理方法,但它们的处理流程一般都如下所述:(1).现场保护和现场恢复中断是在执行其它任务的过程中转去执行临时的任务,为了在执行完中断服务程序后,回头执行原先的程序时,知道程序原来在何处打断的,各有关寄存器的内容如何,就必须在转入执行中断服务程序前,将这些内容和状态进行备份即保护现场。中断服务程序完成后,继续执行原先的程序,就需把保存的现场内容从堆栈中弹出,恢复寄存器和存储单元的原有内容,这就是现场恢复。如果在执行中断服务时不是按上述方法进行现场保护和恢复现场,就会是程序运行紊乱,程序跑飞,自然使单片机不能正常工作。(2).中断打开和中断关闭在中断处理进行过程中,可能又有新的中断请求到来,而现场保护和现场恢复的操作是不允许打扰的,否则保护和恢复的过程就可能使数据出错,为此在进行现场保护和现场恢复的过程中,必须关闭总中断,屏蔽其它所有的中断,待这个操作完成后再打开总中断,以便实现中断嵌套。(3).中断服务程序既然有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容,一般以子程序的形式出现,所有的中断都要转去执行中断服务程序,进行中断服务。(4).中断返回中断返回就是程序运行从中断服务程序转回到原工作程序上来。MCS-51有5个中断源,它们是两个外中断INT0和INT1、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由SCON和TCON两个特殊功能寄存器进行控制。SCON是串行口控制寄存器,字节地址为98H,SCON的低二位是串行口的发送和接收中断标志。TI:MCS-51串行口的发送中断标志,在串行口以方式0发送时,每当发送完8位数据,由硬件置位。如果以方式1、方式2或方式3发送时,在发送停止位的开始时TI被置1,TI=1表示串行发送器正向CPU发出中断请求,向串行口的数据缓冲器SBUF写入一个数据后就立即启动发送器继续发送。但是CPU响应中断请求后,转向执行中断服务程序时,并不清零TI,TI必须由用户的中断服务程序清“0”,即中断服务程序必须有“CLR TI”或“ANL SCON,#0FDH”等指令来清零TI。RI:串行口接收中断标志,若串行口接收器允许接收,并以方式0工作,每当接收到8位数据时,RI被置1,若以方式1、2、3方式工作,当接收到半个停止位时,TI被置1,当串行口一方式2或3方式工作,且当SM2=1时,仅当接收到第9位数据RB8为1后,同时还要在接收到半个停止位时,RI被置1。RI为1表示串行口接收器正向CPU申请中断。同样RI标志由用户的软件清“0”。在TCON中有以下四位与中断控制有关:IE1:外部边沿触发中断1请求标志。IT1:外部中断1类型控制位,通过软件设置或清除,用于控制外中断的触发信号类型。IT1=1,边沿触发。IT=0是电平触发。IE0:外部边沿触发中断0请求标志,其功能和操作类似于IE1。IT0:外部中断0类型控制位,其功能和操作类似于IT1。对于中断控制,已经对TCON和SCON进行了分析,其实它们两个寄存器也是中断的控制寄存器,负责对中断的部分功能进行控制。接下来介绍另外两个控制寄存器IE和IP。MCS-51的对中断的开放和屏蔽是由中断允许寄存器IE控制来实现的,IE的结构格式如下:表2-4 IE寄存器结构IED7D6D5D4D3D2D1D0EA-ESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H下面我们对IE寄存器的各控制位进行介绍:EA:中断总控制位,EA=1,CPU开放中断。EA=0,CPU禁止所有中断。ES:串行口中断控制位,ES=1允许串行口中断,ES=0,屏蔽串行口中断。ET1:定时/计数器T1中断控制位。ET1=1,允许T1中断,ET1=0,禁止T1中断。EX1:外中断1中断控制位,EX1=1,允许外中断1中断,EX1=0,禁止外中断1中断。ET0:定时/计数器T0中断控制位。ET0=1,允许T0中断,ET0=0,禁止T0中断。EX0:外中断0中断控制位,EX0=1,允许外中断0中断,EX0=0,禁止外中断0中断。一个单片机系统通常有多个中断源,有时会出现多个中断源同时提出中断请求的情况,为使CPU能够根据中断源的重要程度,按照轻重缓急的次序响应中断,就必须给每个中断源安排一个中断优先级别。这就是优先级寄存IP的作用了,IP的格式如下,字节地址是B8H。表2-5 IP中断控制寄存器结构IPD7D6D5D4D3D2D1D0-PSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8HPS:串行口中断口优先级控制位,PS=1,串行口中断声明为高优先级中断,PS=0,串行口定义为低优先级中断。PT1:定时器1优先级控制位。PT1=1,声明定时器1为高优先级中断,PT1=0定义定时器1为低优先级中断。PX1:外中断1优先级控制位。PX1=1,声明外中断1为高优先级中断,PX1=0定义外中断1为低优先级中断。PT0:定时器0优先级控制位。PT0=1,声明定时器0为高优先级中断,PT0=0定义定时器0为低优先级中断。PX0:外中断0优先级控制位。PX0=1,声明外中断0为高优先级中断,PX0=0定义外中断0为低优先级中断。MCS-51的CPU在每一个机器周期的S5P2状态顺序检查每一个中断源,在机器周期的S6按优先级处理所有被激活的中断请求,此时,如果CPU没有正在处理更高或相同优先级的中断,或者现在的机器周期不是所执行指令的最后一个机器周期,或者CPU不是正在执行RETI指令或访问IE和IP的指令(因为按MCS-51中断系统的特性规定,在执行完这些指令之后,还要在继续执行一条指令,才会响应中断),CPU在下一个机器周期响应激活了的最高级中断请求。中断响应的主要内容就是由硬件自动生成一条长调用LCALL addr16指令,这里的addr16就是程序存储器中相应的中断区入口地址,这些中断源的服务程序入口地址如下:表2-6 5个中断服务程序入口地址中断源入口地址外中断00003H定时/计数器0000BH外中断10013H定时/计数器1001BH串行口中断0023H生成LCALL指令后,CPU紧跟着便执行之.首先将PC(程序计数器)的内容压入堆栈保护断点,然后把中断入口地址赋予PC,CPU便按新的PC地址(即中断服务程序入口地址)执行程序。值得一提的是,各中断区只有8个单元,一般情况下(除非中断程序非常简单),都不可能安装下一个完整的中断服务程序。因此,通常是在这些入口地址区放置一条无条件转移指令,使程序按转移的实际地址去执行真正的中断服务程序。2.5 抗干扰复位电路板上每个IC要并接一个00101F高频电容,减小IC对电源的影响。注意高频电容的布线应靠近电源端,并尽量短,否则等于增大了电容的等效串联电阻,会影响滤波效果。 避免90折线,减小高频噪声发射。 在可控硅两端并接RC抑制电路,减小可控硅噪声。GPS要通过天线才可以接收到比较好的信息的,最好在空旷的地方做测试。还要注意地线的电源的共用问题。图2-8 抗干扰复位电路图2.6 晶振晶振布线,晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定。图2-9 晶振图2.7 8251可编程串行接口芯片图2-10 8251可编程串行接口芯片引脚图2.7.1 8251A与CPU的连接信号 8251A与CPU的连接信号分为四类(1) 片选信号 :片选信号,它由 CPU 的地址信号通过译码后得到。 (2) 数据信号 D 0 -D 7 : 8 位,三态,双向数据线,与系统的数据总线相连。传输 CPU 对 8251A 的编程命令字和 8251A 送往 CPU 的状态信息及数据。 (3)读 / 写控制信号 :读信号,低电平时, CPU 当前正在从 8251A 读取数据或者状态信息。 :写信号,低电乎时, CPU 当前正在往 8251A 写入数据或者控制信息。 C/ :控制 / 数据信号,用来区分当前读 / 写的是数据还是控制信息或状态信息。该信号也可看作是 8251A 数据口 / 控制口的选择信号。 由此可知, 、 、 C/ 这 3 个信号的组合,决定了 8251A 的具体操作。 注: 数据输入端口和数据输出端口合用同一个偶地址 ,而状态端口和控制端口合用同一个奇地址 。 (4)收发联络信号 TXRDY :发送器准备好信号,用来通知 CPU , 8251A 已准备好发送一个字符。 TXE :发送器空信号, TXE 为高电平时有效,用来表示此时 8251A 发送器中并行到串行转换器空,说明一个发送动作已完成。 RXRDY :接收器准备好信号,用来表示当前 8251A 已经从外部设备或调制解调器接收到一个字符,等待 CPU 来取走。因此,在中断方式时, RXRDY 可用来作为中断请求信号;在查询方式时, RXRDY 可用来作为查询信号。 SYNDET :同步检测信号,只用于同步方式。 2.7.2 8251A 与外部设备之间的连接信号 8251A 与外部设备之间的连接信号分为两类 : (1) 收发联络信号 :数据终端准备好信号,通知外部设备, CPU 当前已经准备就绪。 :数据设备准备好信号,表示当前外设已经准备好。 :请求发送信号,表示 CPU 已经准备好发送。 :允许发送信号,是对 的响应,由外设送往 8251A 。 实际使用时,这 4 个信号中通常只有 必须为低电平,其它 3 个信号可以悬空。 (2)数据信号 TXD :发送器数据输出信号。当 CPU 送往 8251A 的并行数据被转变为串行数据后,通过 TXD 送往外设。 RXD :接收器数据输入信号。用来接收外设送来的串行数据,数据进入 8251A 后被转变为并行方式。 2.7.3. 时钟、电源和地 8251A 除了与 CPU 及外设的连接信号外,还有电源端、地端和3个时钟端。 CLK :时钟输入,用来产生 8251A 器件的内部时序。 同步方式下,大于接收数据或发送数据的波特率的 30 倍 , 异步方式下,则要大于数据波特率的 4.5 倍 。 TXD :发送器时钟输入,用来控制发送字符的速度。 同步方式下, TXC 的频率等于字符传输的波特率, 异步方式下,TXC 的频率可以为字符传输波特率的1倍、 16倍或者64倍。 RXD: 接收器时钟输入,用来控制接收字符的速度,和 TXC 一样。 在实际使用时, RXC 和 TXC 往往连在一起,由同一个外部时钟来提供, CLK 则由另一个频率较高的外部时钟来提供。 VCC :电源输入 GND :地图2-11 8251的内部结构图2.8 74ls37374LS373是八D锁存器(3S,锁存允许输入有回环特性) ,常应用在地址锁存及输出口的扩展中。简要说明: SN74LS373, SN74LS374 常用的8d锁存器,常用作地址锁存和i/o输出. 可以用74hc373代换. 74LS373是低功耗肖特基TTL8D锁存器,74H373是高速CMOS器件,功能与74LS373相同,两者可以互换。74LS373内有8个相同的D型(三态同相)锁存器,由两个控制端(11脚G或EN;1脚OUT、CONT、OE)控制。当OE接地时,若G为高电平,74LS373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。工作原理:74LS373的输出端O0O7可直接与总线相连。当三态允许控制端OE为低电平时,O0O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。图2-12 74ls373的引脚图3. GPS系统原理概述3.1 GPS的组成GPS包括下列三大部分:(1)空间部分(GPS卫星);(2)地面监控部分(地面支撑系统);(3)用户设备部分(GPS接收机)。如图3-1所示。GPS系统组成控制部分空间部分用户部分图3-1 GPS组成示意图3.1.1 GPS空间部分目前,GPS空间部分主要由GPS工作卫星和少数几颗仍在正常工作的实验卫星组成。GPS工作卫星星座(Block)共有24颗卫星,其中3颗为备用卫星可随时替代发生故障的其它卫星。24颗工作卫星均匀分布在离地面20 200 km高空互成60的6个轨道上,卫星的运行轨道长半轴为26 609km,运行周期为12小时,卫星轨道面相对于地球赤道面的倾角为55,每个轨道面上布设4颗卫星,彼此相距120,从一个轨道面的卫星到下一个轨道面的卫星间错动40,由此保证了全球15高度角以上可随时观测到48颗卫星。如图3-2所示。图3-2 GPS星座示意图GPS卫星的基本功能是:1)接收和储存来自地面监控站的导航信息,接收并执行监控站的控制指令。2)通过星载的高精度艳钟和铷钟提高精密的时间标准。3)卫星上设有微处理机,进行部分必要的数据处理工作。4)向用户发送导航与定位信息。5)在地面监控站的指令下,通过推进器调整卫星的姿态和启用备用卫星。3.1.2 地面监控部分图3-3 GPS卫星的地面监控站分布图其他控制指令等注入到相应卫星的储存系统,并监测注入信息的正确性。然后由GPS卫星将这些信息发送给广大用户,这就是所用的广播星历。监测站的主要任务是对每颗卫星进行观测,并向主控站提供观测数据。每个监测站配有GPS接收机,对每颗卫星长年连续不断地进行观测,每6秒进行一次伪距测量和积分多普勒观测,采用气象要素等数据。五个监测站分布在美国本土和大西洋的美军基地上,保证了全球GPS定轨的精度要求。由这五个监测站提供的观测数据形成了GPS卫星实时发布的广播星历。3.1.3 用户设备部分用户设备部分对用户来说是至关重要的。空间部分和地面监控部分,是用户广泛应用系统进行导航和定位的基础,而用户只有通过用户设备,才能实现应用GPS导航和定位的目的。用户设备的主要任务是接收GPS卫星发射的信号,以获得必要的导航和定位信息及参数,经过数据处理,完成导航和定位的工作。它主要由GPS接收机硬件、数据处理软件以及微处理机和其终端设备组成,GPS接收机的硬件一般包括主机、天线和电源。全球定位系统的空间部分和地面监控部分,是用户应用该系统进行定位的基础,而用户只有通过用户设备,才能实现应用GPS定位的目的。用户设备的主要任务是,接收GPS卫星发射的无线信号,以获得必要的定位信息及观测量,并经数据处理而完成定位工作。根据GPS用户的不同要求,所需的接收机设备各异。随着GPS定位技术的迅速发展和应用领域的日益扩大,许多国家都在积极研制、开发适用于不同要求的GPS接收机及相应的数据处理软件。3.2 GPS接收机及其工作原理3.2.1 GPS接收原理GPS 定位技术的基本原理是采用测量学中通用的测距交会方法。用户接收机在某一时刻接收到3 颗以上的GPS 卫星信号, 测量出测站点至卫星的距离, 并通过导航电文解算出该时刻GPS 卫星空间坐标, 据此, 采用距离交会算法, 得出接收机天线中心的空间位置坐标。GPS接收机通过其数控接口,作为数据终端设备与计算机之间利用RS232C接口与计算机通讯口相连。通过对通讯口编程可实现GPS信号的接收。GPS信号有二进制和ASCII两种。本文主要用后一种即NMEA0183格式。3.2.2 GPS接收机概述GPS接收机是用户设备的核心部分。GPS接收机作为一个系统,可分为硬件部分和软件部分。硬件部分包括接收机、天线和电源等硬件设备。软件包括内软件和外软件,内软件是与接收机融为一体的控制接收机信号、对卫星信号进行测量,以及自动操作的程序等;外软件指观测数据后处理的软件系统。接收机的种类很多,可以按不同的要求进行分类,但各类接收机的结构基本一致。可分为天线单元和接收单元两部分,如图3-4所示。图3-4 GPS接收机的基本构成下面对其主要功能作简要介绍。(一)天线单元它是由接收天线和前置放大器组成。目前,接收机采用的天线有:定向天线、偶极子天线、微带天线、一(二、四)线螺旋天线、圆锥螺旋天线等。这些天线各有利弊,各有特点,可根据需要选用。前置放大器是一种关键性元件,它直接影响着信噪比。因此要求它具有噪声系数小、增益高和动态范围大的特点。(二) 接收单元(1)信号通道单元:它的主要功能是接收来自天线单元的信号,经过变频、放大、滤波等一系列处理过程,实现对GPS信号的跟踪、锁定、测量、提供出计算位置的数据信息。根据需要
展开阅读全文