




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式课程设计嵌入式课程设计题目简单 四川理工学院计算机学院 嵌入式系统应用开发 课程设计报告 题 目 :串口数字时钟设计 学 院 专 业 : 班 级 : xx级1班 姓 名 : 黄海雷 宋涌 周礼佟 学 号 : 1* 指导教师 : 居锦武 xx年 6月20日 教师评语: 总分: 教师签名: 摘要 随着嵌入式系统和GPRS 无线网络的发展,GPRS 无线数据终端为工业生产中的远距离数据传输带来了更佳的传输途径,摆脱了有线数据传输的局限性,极大地节省了后期维护费用,降低了成本,满足了日益增长的工业需求。GPRS 无线数据终端的研究具有广泛的意义和良好的商业前景。 本文主要设计并实现基于ARM 的GPRS 无线数据终端。该系统以ARM7系列微处理器为 核心,通过AT 指令控制自带有完整TCP/IP协议栈的无线数据模块。结合GPRS 通信网络的特点分析无线数据传输嵌入式系统的设计过程,给出系统的具体实现方案,提出硬件、软件系统的设计流程、开发要点和实现过程。 本系统经过几个月的设计制作,较好的完成了无线数据终端的各项功能。 关键词:GPRS ;嵌入式;ARM ;AT 指令;TCP/IP协议 ABSTRACT with the development of embedded systems and GPRS wireless work, GPRS wireless data terminals has pought a better way of transmission for long-range data transmission in industrial production, getting rid of the limitations of wired data transmission, saving significantly in the later maintenance costs , reducing costs and meeting the growing industrial demand. The research of the GPRS wireless data terminal has poad meanings and good business prospects. The paper mainly designs and implements the GPRS wireless data terminal based on ARM. The system depending on ARM7 family microprocessor can control wireless data module with a plete TCP / IP protocol stack through AT mands. Make an analysis of the design process of the embedded system for wireless data transmission, bined with GPRS munication work characteristics and give a specific system implementation including: the hardware and software design process, development points and the implementation process. The design is pleted for several months, implementing various functions of the wireless data terminal. Key words : GPRS; Embedded; ARM; AT mand; TCP / IP protocol 目录 1 绪论 . . 1 1.1 研究背景 . .1 1.2 研究意义 . .1 2 系统总体设计 . 2 2.1 系统功能要求 . .2 2.2 系统组成 . .2 2.3 AT指令集 .2 3 硬件电路设计 . 3 3.1 电源电路具体设计 . . 错误!未定义书签。 3.2 主控外围电路 . .4 3.3 串口通信电路 . .4 3.4无线模块电路设计 . .5 4 软件程序设计 . 6 4.1 软件设计流程 . .6 4.2 主要程序说明 . .7 4.2.1 程序代码 . .7 4.2.2 头文件介绍 . .1 5 系统调试 . 1 5.1 硬件调试 . .1 5.2 软件调试 . .1 6 . . 1 _ . 15 1 绪论 1.1 研究背景 计算机与通信技术的不断发展,极大地促进了工业领域及其它领域的自动化和化的发展。以前在工业领域大多采用由单片机构成的数据处理系统和PC 机通过串行口构成的微机系统,主要是针对于生产过程分布范围不大、相距不远的场合,这些系统大多采用RS-232,RS-485或有线MODEM 的通信方式,虽然经济实用,但是采用有线的数据传输方式,在很大程度上限制了应用场合的拓展。随着企业生产规模不断扩大,不同的生产部门可能在地域上分布极广,相距遥远,如电力、铁路、采矿和石油等,这些部门要对相距遥远的生产过程进行数据传输,如果还是沿用有线的传输方式,则在技术上和经济上都是不足取的。所以采用无线的方式来进行数据传输的需求就日益突出了。 在通信领域中,移动通信(GPRS)网则是这个领域中发展最积极最活跃最快的分支之一。GPRS(General Packet Radio Service)即通用分组无线业务,是在现有GSM 网络上开通的一种新型的数据传输技术,GPRS 采用分组交换方式,仅在实际传送和接收数据时才占用无线资源。GPRS 理论上可提供高达171.2kb s 的传输速率。除了速度上的优势外,GPRS 还有“永远在线 的特点,即用户可随时与网络保持联系。另外分组交换接入时间的缩短,能提供快速即时的连接,可大幅度提高一些事务的效率。利用现有的GPRS 网络资源,发挥网络覆盖率高、永远在线等优势,为现有数据传输系统提供一种便捷的无线传输方式。 而嵌入式系统是一门交叉学科,其支柱学科包括微电子学科、计算机学科、电子技术学科和对象学科。微电子学科是嵌入式系统发展的基础,对象学科是嵌入式系统应用的归属学科,计算机与电子技术学科是嵌入式系统技术发展的重要保证。在当今社会中,嵌入式系统已经广泛应用于信息家电、移动通讯、手持通信终端、仪器仪表、航空航天以及工业控制等领域,为人们工作和生活带来了极大的便利,是当前研究最为热门的领域之一。 1.2 研究意义 随着通信技术的高速发展,GPRS 无线通信网络已与互联网连接在一起,成为一种可持续利用和开发的资源;嵌入式系统也由于功耗低、性能强等特点,被广泛应用于通信、工业控制等领域。所以,利用嵌入式系统和GPRS 网络,对GPRS 无线数据终端进行设计可以通过GPRS 网络连接到互联网,为用户提供透明的数据传输通道,适合于移动环境和难于分布的场所以及偏远地区。 如何利用嵌入式系统实现无线终端,并通过GPRS 无线网络进行数据传输是一个具有实用意义的研究。GPRS 无线数据终端作为数据传输终端的载体,有广阔的市场和良好的商业前景。 2.1 系统功能要求 GPRS 无线数据终端功能有:系统可以在7V- 40V宽电压范围供电,也可5V 供电;具有232、485两种通信接口;系统上电初始能够通过串口对IP 地址、网络端口号等登陆参数进行配置且掉电参数非易失;自动登陆网络建立TCP 连接;能够对下行数据进行解析处理完成数据的透明传输;支持心跳包发送,保持永久在线。 2.2 系统组成 根据系统功能要求系统大体分为五部分:电源部分、存储部分、串口通信部分、系统主控部分、无线通信部分。电源部分为各功能模块部分提供电源支持,主控部分与存储部分为主从模式,存储主要的参数和相关数据。通过串口通信部分完成参数配置和下位机数据交换的任务。主控部分完成数据的接受、发送、校验、解析等处理,通过和无线模块的通信完成数据的无线透明传输。 2.3AT 指令集 AT 即Attention ,AT 指令集是从终端设备(Terminal Equipment,TE) 或数据终端设备向终端适配器(Terminal Adapter, TA) 或数据电路终端设备发送的。通过TA ,TE 发送AT 指令来控制移动台的功能,与GSM 网络业务进行交互。用户可以通过AT 指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。90年代初,AT 指令仅被用于Modem 操作。没有控制移动电话文本消息的先例,只开发了一种叫SMS BlockMode的协议,通过终端设备(TE)或电脑来完全控制 SMS 。几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP 共同为GSM 研制了一整套AT 指令,包括对SMS 的控制。AT 指令在此基础上演化并被加入GSM0705标准以及现在的GSM0707标准。SMS 的控制共有3种实现途径:最初的BlockMode ;基于AT 指令的TextMode ;基于AT 指令的PDUMode 。到现在PDUMode 已经取代BlockMode ,后者逐渐淡出。GSM 模块与计算机之间的通信协议是一些AT 指令集,AT 指令是以AT 作首,字符结束的字符串,AT 指令的响应数据包在每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等) ,模块将有对应的一些信息提示,接收端可做相应的处理。 本文用到的基本指令有:AT 、ATE0、AT+ZPNUM=CMNET,(设置APN 指令)、 AT+ZPPPOPEN(激活APN 指令)、AT+ZIPSETUP=1,60.208.26.237,3030(建立TCP 网络连接指令)、 AT+ZIPSEND=1,10(发送数据指令)。 硬件电路设计的具体设计任务:首先分析硬件系统各部分的功能要求,选择合适的器件,完成各部分电路的设计,然后利用Protel99se 进行硬件电路原理图的总体设计和PCB 的设计,完成硬件设计。 3.1电源电路具体设计 在宽电源供电下,首先7-40V 的直流电源进过LM2576DC-DC 变换成5V 直流电,然后LM2576的输出经MIC29302转换给无线模块供电,同时LM2576输出的5V 直流电经芯片SP6201-3.3转换成3.3V 给3.3V 芯片供电。 在图3.1中的电路中,LM2576输入端和输出端(MIC29302的输入端)的两个二极管IN5408为保护二极管以防电源接反损坏芯片,D3为稳压管,稳定电源输出, 电感L1作用是滤波,使输出5V 电压更加稳定。 图3.2中VBAT 为MIC29302的输出,直接给MG2639 模块供电。MG2639 模块要求供电电压在3.4V-4.25V 之间。由R 21=R 1?( V out R -1) 得VBAT =21?1. 250+1。为满足1. 240R 1 要求R21/R1在1.92-2.6之间,故R21=2.2K、 R1=1K,计算得VBAT=3.75V。 .3 图3.3中芯片SP6201-3.3是把5V 电压转换成3.3V ,为3.3V 器件供电,EN 接高电平使能转换,RSN 为低电压检测复位端。当输出电压过低时,延时检测发出复位信号。本系统未用此端。C15、16为电源端去耦电容。 3.2 主控外围电路 主控电路主控芯片为LPC 2132,采用外部看门狗,外部看门狗芯片选择SP706。SP706S 供电电源为3.3V ,系统上电后,SP706S 自动产生200ms 低电平复位信号,使MCU 正常复位。MCU 配置一个I/O 管脚为输出,并接到WDI 。如果I/O 固定为HIGH 或LOW 电平不变,则1.6s 后,SP706S 内部的看门狗定时器就会溢出并使/WDO 输出低电平,而/WDO 已连接到手动复位/MR,因此会导致/RST 管脚输出低电平复位信号使MCU 重新复位。MCU 在正常工作情况下当然是不允许这样反复复位的,因此必须在程序里及时反转I/O 的状态,该操作被形象地称为“喂狗”。每次反转WDI 输入状态都能够清除SP706S 内部的看门狗定时器,从而确保/WDO 不会输出低电平(为保证可靠,喂狗间隔应当小于1s )。利用外部看门狗的好处是使系统更加稳定可靠,避免内部看门狗定时器限制系统功能。晶振电路晶振选择11.0592MHZ ,这样使得系统时间更加准确。 3.3 串口通信电路 由于在工业现场大部分的串口通信接口,一般采用RS-232或RS-485接口方式,为了满足不同用户的需求,本系统设计了两种接口方式,可供用户根据自身条件自由选择。故选用sp3232en 和sp3485en 作为GPRS 无线终端与下位机的通信接口。sp3232en 和sp3485en 供电电源均为3.3V ,均为工业级芯片。 如图3.6所示,485电路中的CON2 、CON3是232与485的通信接口切换接线端子,当RXD0与3485RXD 短接、TXD0与3485TXD 短接时,系统对外为485接口,反之为232接口。A 、B 输出末端的电阻作为线路的匹配电阻,也是为了避免信号的反射影响系统性能。UC0504A 集成了四个TVS 管,在A 、B 线路上各接一个TVS 管,瞬态电压抑制器TVS 可以有效的保护器件免遭瞬态高压的损害,它可以瞬间由高阻态变成低阻态,使两极间的电压箝位于一个预定值,有效地保护电子线路中的精密元器件,免受各种浪涌脉冲的损坏。J5 为485对外接口。当REDE 为高电平时主控向485发送数据,为低电平是经过485接收数据。 C OM 0_T1OUT C OM 0_R1IN 1 27895 J6 C 7104 DB9 3.4 无线模块电路 无线模块MG2639模块是28引脚邮票接口模块,功能支持短信、语音通话、数据传输业务。无线模块MG2639模块具有一个完整全双工UART 接口(以下简称UART 串口),最大速率为115200bps ,对外接口为2.8V CMOS 电平信号,逻辑功能符合RS-232 接口协议中的规定。这路UART 串口可作为串行数据接口,通常用于AT 指令、数据业务、升级模块软件等。鉴于本系统的功能需求,本设计主要用到的是数据传输业务。用到的引脚有RXD 、TXD 串口引脚,RSSI_LED为网络信号指示和与SIM 卡相关的信号引脚。 SIM 卡电路电源为MG2639V_CARD输出电压提供,MG2639支持1.8V/3.0V的SIM 卡。 由于SIM 卡的设计需要满足ESD 电气性能,防止环境下ESD 损坏SIM 卡的情况,故本设计在4 路SIM 卡信号上都加上了TVS 器件。并且在4 路SIM 卡信号上都加了电容值为22PF 的滤波电容。减少信号的干扰。CLK 为SIM 卡的时钟,DATA 为SIM 卡的数据,RST 为SIM 卡的工作复位信号。 4 软件程序设计 4.1 软件设计流程 本文软件设计部分,主要按照系统工作过程进行的设计。首先是对LPC2132涉及到的各功能部分进行初始化设置,包括主频、串口、定时器、I2C 总线。其次是对GPRS 登陆参数进行设置,包括连接的IP 和相应的端口号。最后建立TCP 服务器链接,进入TCP 工作模式,完成上下行数据的透明传输。图4.1为具体流程图。 4.2 主要程序说明 4.2.1 程序代码 #include byshj.h uchar or_At=ATrn; uchar or_Anum=AT+ZPNUM=CMNET,rn; /设置APN uchar or_Aopen=AT+ZPPPOPENrn;/激活APN uchar or_Aipset40=AT+ZIPSETUP=1,60.208.26.237,3030rn; / 建立连接 uchar or_Asend=AT+ZIPSEND=1,10rn; /要发送的数据及长度 uchar or_Aipstatus=AT+ZIPSTATUS=rn; /连接状态查询 uchar or_Ate0=ATE0rn; uchar or_A0send=AT+ZIPSEND=1,1rn; uchar or_re0MAXL=123456789; /串口0接受的数据 uchar or_re1MAXL=123456789; /串口1接受的数据 uchar eror=TCP Connected Fail!; uchar config=Please input IP&Portrn ; /22 uchar affirm=Please affirm IP&Port, Right:input 0 Error:input 1 rn ; uchar def_ip=Choose IP&Port defult!; uchar cg_s=Suessfulrn; uchar cg=1; uchar set_len=34; extern uint mnum; /串口1接收数据长度 extern uint nnum; /串口0接收数据长度 extern uint Hbt; extern uchar Up_d; extern uint re0m; /串口1接收数据标志 extern uint re1m; /串口0接收数据标志 void Zhpinit(void) void delay_n (uint n) uint32 i; while(n-) void Wait_cg(void) PLLCON=0x03; PLLCFG=0x23; PLLFEED=0xAA; PLLFEED=0x55; VPBDIV=0X00; /10ms延时程序 for(i=0;i /避免未连接时进行心跳包发送 nnum=0; Hbt=0; while(cg) while(nnum if(Hbt=100)peak; set_len=nnum+16; Ipconfig(or_re0); sendnchar(or_Aipset,set_len); sendnchar(affirm,53); nnum=0; while(nnum sendnchar(cg_s,12); else sendnchar(config,22); nnum=0; Hbt=0; sendnchar(or_Aipset,set_len); int main(void) Irq0Init(); IOInit(); Zhpinit(); Timer0Init(); Uart0Init(); Uart1Init(); read485() ; I2C_Init(200000); Fm_read(0xa1, 0x0000, &set_len,1); Fm_read(0xa1, 0x0000, or_Aipset, set_len); Wait_cg(); Fm_write(0xa0, 0x0000, &set_len,1); Fm_write(0xa0, 0x0000, or_Aipset,set_len); delay_n(1000); Hbt=0; Tcp_fun();/TCP连接 while(1) if(Up_d) /用标志位检测 有数据传输 Hbt=0; /有数据传输 心跳标志清零 switch( Up_down() case 1: Upsend( );/发送上行数据 nnum=0; /发送完成对个标志位清零 mnum=0; Up_d=0; re1m=0; re0m=0; peak; case 2: Downsend( ); / 发送上行数据 mnum=0; nnum=0; Up_d=0; re1m=0; re0m=0; peak; case 3: sendchar(0x42); Downsend( ); /发送上行数据 Upsend( ); /发送上行数据 mnum=0; nnum=0; Up_d=0; peak; default : mnum=0; nnum=0; Up_d=0; if(Hbt=600) /十分钟 且 无数据 心跳 Heartbeat(); Hbt=0; Up_d=0; 4.2.2 头文件介绍 #ifndef _byshj_h #define _byshj_h #include LPC213x.h typedef unsigned char uchar; typedef unsigned int uint; typedef unsigned long int uint32; #ifndef MAXL #define MAXL 1022 #endif #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif /*中断*/ void Irq0Init(void); /*中断初始化*/ void Clr_Irq0(void); /*串口0*/ void Uart0Init(void); void sendchar(unsigned char data); void sendnchar(unsignedchar *ndata,unsigned int num); void _irq Rece0(void); /*串口1*/ void Uart1Init(void); void send1char(unsigned char data); void send1nchar(unsigned char *ndata,unsigned int num); void _irq Rece1(void); /*定时器*/ void Timer0_open(void); void Timer0_close(void); void Timer0Init(void); void _irq IRQ_Timer0(void); void Clr_Timer0(void); /*关闭串口中断*/ void close_uart(void); void open_uart(void); /*I/O口*/ void IOInit(void); /*TCP程序*/ void Ipconfig(uchar *ndata); uchar p_char(uchar * ndata0 ,uchar * ndata1,uchar num); /比较两个字符串 void Tcp_fun(void); void Count_cl(uint num); void s_cl(void); uchar Up_down(void); /判断上下行数据 void Da_exp(uchar *ndata); /解析数据 void Upsend(void); /发送上行数据 /发送下行数据 /心跳包发送 void Downsend(void); void Heartbeat(void); /*缓存处理程序*/ void I2C_Init(uint32 fi2c ); void _irq I2C0(void); void Fm_read(uchar sla, uint suba, uchar *s, uint no) ; /缓存数据存储 void Fm_write(uchar sla, uint suba, uchar *s, uint no) ; /*看门狗复位*/ void watdog(uchar wd); /*458接收使能*/ void read485(void); /*458发送使能*/ void write485(void); #endif 5 系统调试 5.1 硬件调试 硬件调试主要是对系统各功能模块进行的功能进行调试。调试过程为:首先检查原理图连接是否正确。有没有遗漏的连接。原理图器件与PCB 封装是否对应。检查原理图功能引脚以及引脚顺序是否符合实际要求。硬件调试分成功能模块电路进行调试。确保每部分功能电路都没有问题。对于发现有短接的电路连接,一般通过割线的方法进行处理。 根据各部分电路分开调试,中间出现过短接的现象和其他问题。通过严格的硬件调试最终系统硬件符合系统要求,为系统总体的设计打下了一个良好的硬件基础。 5.2 软件调试 由于系统采用C 语言编程,系统程序多采用模块化结构,这使得软件调试变得比较容易。程序通过Keil uVision4编译连接生成代码,通过LPC2000 Flash Utility 下载。 首先是对定时器程序的调试。硬件电路中有LED 显示,用来指示系统运行状态。故在定时器程序模块调试时,用LED 指示灯的闪烁来调试定时器的软件部分。同时在此基
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目施工组织与协调方案
- 建筑拆除废弃物分类与处理方案
- 磷矿项目建设工程方案
- 硅藻土综合利用项目建设工程方案
- 大气污染防治与治理方案
- 绿化工程环境影响评估与修复方案
- 河道整治工程方案设计与优化
- 园林古建筑园区综合绿化方案
- 借助英语文化教学加强学生的国家认同与价值观
- 初中物理科普运动试题及答案
- 小学科学新教科版三年级上册全册教案(2025秋新版)
- 自然分娩的好处
- 铁路房建安全知识培训课件
- MCN机构签约合同范本
- 2025至2030中国魔芋行业项目调研及市场前景预测评估报告
- 2025年税务局系统内部招聘考试经验总结与指导
- 2024学年北京昌平区初二语文(上)期中考试卷附答案解析
- 中石油盘锦分公司加油站服务营销的困境与破局之道
- 2024新译林版英语八年级上Unit 3 To be a good learner单词表(开学版)
- 法人账户透支培训
- 学堂在线 人像摄影 章节测试答案
评论
0/150
提交评论