0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于GPRS网络传输的终端固件升级系统设计

电子设计 2018-09-17 09:51 次阅读

设计基于中国移动GPRS无线网络,以C8051F340单片机为核心,GSM/GPRS/EDGE无线模块MC75作为通信模块开发的网络测试终端设备。当该终端设备的固件需要升级时,在远程服务器端开启FTP服务器并与终端建立连接,终端从该FTP服务器上下载已更新的二进制升级文件并存储在外部Flash中,在主程序进行校验后跳转到升级程序段覆盖掉片内Flash中原有的固件程序,完成系统固件远程更新。

引言

嵌入式技术的迅速发展使得越来越多的嵌入式终端设备应用在人们的日常生活中,其中不乏应用在一些偏远地方,甚至工作在无人看管的场合下。人口比较稀少的地方,由于基站分布比较分散,加之人口比较稀疏,基站维护等操作常难以执行,这就需要在某些地方放置网络信号测试仪检测该地区的通信信号质量,并将该信息反馈到远程服务器。同时,由于硬件系统程序设计固有的局限性,固件程序的升级在所难免。针对实际情况,本文开发了网络信号测试仪的单片机远程升级系统。

1 系统硬件设计

整个系统以Silicon Labs公司推出的混合信号片上系统型单片机C8051F340作为核心控制单元,采用GSM/GPRS/EDGE无线模块MC75作为与远程服务器的通信模块,采用上海丽浪电子有限公司推出的R36模块作为GPS模块,通过GPS卫星接收RMC格式的导航电文供终端设备定位用。C8051F340单片机包含两个TTL电平的串行接口,分别与GPRS模块和GPS模块进行通信。GPRS模块可接收远程控制台发来的控制指令,并传输给单片机进行处理。系统总体框图如图1所示。

基于GPRS网络传输的终端固件升级系统设计

1.1 C8051F340介绍

C8051F340具有片内上电复位、VDD监视器、电压调整器、看门狗定时器时钟振荡器等内部资源,是真正能独立工作的片上系统。Flash存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许远程更新8051固件程序。用户软件对所有外设具有完全的控制,可以关断任何一个或所有外设以降低功耗。

C8051F340的主要特点:

◆高速、流水线结构并与8051兼容的微控制器内核 (可达48 MIPS);

◆全速、非侵入式的在系统调试接口(片内);

◆精确校准的12 MHz内部振荡器和4倍时钟乘法器;

◆64 KB的片内Flash存储器,4532字节的片内RAM

◆硬件实现的SMBUS接口,2个增强型UART(TTL电平)、1个增强型SPI串行接口;

◆4个通用的16位定时器;

◆5个捕获/比较模块和具有看门狗定时器功能的可编程计数器/定时器阵列(PCA)。

1.2 单片机与GPRS模块通信电路设计

MC75模块是Siemens公司推出的第三代GSM/GPRS/EDGE无线模块。这种模块能处理高数据密集型多媒体设施,可以应用于全球的GSM网络。其主要特点为:

◆支持850 MHz、900 MHz、1 800 MHz、1 900 MHz四种频段;

◆E-GPRS下行速率可达460 kbps;

◆EDGE(E-GPRS)multi-slot ClasslO:

◆GPRS移动基站ClassB;

◆SMS及SMS蜂窝广播;

◆板载SIM卡捅槽或外接SIM卡读卡器,支持USB接口;

◆AT指令GSM07.05及GSM07.07;

◆输入电压为3.2~4.5 V,建议使用3.8 V±O.2 V。

C8051F340与MC75模块的通信电路如图2所示。

基于GPRS网络传输的终端固件升级系统设计

1.3 单片机与串行FIash接口设计

C8051F340内部有64 KB的Flash,而整个系统程序为40 KB左右,为了实现远程升级功能,需将更新的程序存储在外部扩展Flash中。在此选用了Atmel公司的串行Flash,型号为AT45DBl61D。其电压工作范围为2.7~3.6 V,快速串行接口工作频率最高可达到66 MHz,空间大小为17 301 504位,由4096页组成(每页包含512字节或者528字节)。除了主存储器外,它还包括2片512或528字节的静态随机存储单元。在本系统设计中,AT45DB161D可存储系统中所需的一些网络信号参数,以便经过GPRS网络传递给远程主机;另外,还可以存储远程服务器发送的二进制升级文件。其与C8051F340的接口电路如图3所示。

基于GPRS网络传输的终端固件升级系统设计

2 系统软件设计

该终端设备在工作期间,会收到远程服务器发送来的一系列控制命令,如测试周围附近的网络信号指令,给某个手机拨打电话并记录通话状态下的信号指令等。这些操作都是由单片机通过串口发送给GRPS模块的AT指令实现的。例如SEND String(”AT-SMONC\r”),单片机将“AT-SMONC”这条命令通过串口发送给GPRS模块,该模块可自动测得主小区及相邻小区的信号指令数据,并通过串口发送给单片机以供其处理。同样,单片机可接收到远程升级指令,从而启动远程升级功能。

2.1 升级系统软件设计

本系统软件由两部分组成:主程序和升级程序,分别对应于Main工程和Update工程。Main工程负责与远端服务器进行通信,接收服务器发送的指令并进行相应操作;而Update工程编译、链接时,在其编译器链接选项中设置CODE(OxE000,PR?MAIN?UPDATE(0xE000)),可将Upd-ate工程编译、链接后生成的hex文件烧写到单片机内部Flash以0xE000作为起始地址处,同时默认地将Main工程编译、链接生成的二进制文件烧写到内部Flash的起始地址处。单片机在执行主程序过程中,检测到升级标志置1后,单片机跳转到升级程序地址处执行固件升级程序;升级完毕后,复位单片机,程序又从内部Flash的零地址开始执行更新的固件程序。图4为主程序流程,图5为相应的固件升级程序流程。主程序在运行过程中受远程服务器的实时控制。当固件程序需要更新时,在服务器端将准备更新的固件编译、链接后生成的hex或bin文件放入某一固定目录内,启用FTP服务器(如FtpMan),通过TCP/IP协议发送远程升级指令给测试终端;终端收到升级指令后启动相应的FTP接收功能,将远端文件分解成多个数据包并逐个存储在外部Flash中;存储完毕后,主程序会对该接收文件进行CRC校验,若校验无误,则通过函数指针跳转到升级程序功能区,启动升级程序,将二进制文件从外部Flash中转移到内部Flash对应的地址空间中去。单片机复位重启后,就可以从内部Flash的起始地址处执行更新完毕的程序。

基于GPRS网络传输的终端固件升级系统设计

基于GPRS网络传输的终端固件升级系统设计

2.2 函数指针应用

当主程序检测到升级标志后,主程序跳转到升级程序地址处执行升级固件程序,此处使用了函数指针的功能。

结语

本文设计了基于GPRS网络传输的终端固件升级系统,给出了合理的芯片选型,以及独立的固件升级程序。该升级系统已应用到实际产品应用中,并取得了很好的效果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6037

    文章

    44558

    浏览量

    635195
  • GPRS
    +关注

    关注

    21

    文章

    984

    浏览量

    129435
  • 通信模块
    +关注

    关注

    2

    文章

    150

    浏览量

    33082
收藏 人收藏

    评论

    相关推荐

    【OTA升级】无需数据线,一条命令即可完成固件升级

    的位置特殊、没有预留硬件有线升级接口等原因,用户往往无法人为的通过有线方式更新设备固件,这时候就可以通过OTA进行网络升级。UpdateEngine介绍Firefly
    的头像 发表于 12-11 01:00 504次阅读
    【OTA<b class='flag-5'>升级</b>】无需数据线,一条命令即可完成<b class='flag-5'>固件</b><b class='flag-5'>升级</b>!

    脉冲全闭环EtherCAT运动控制器的固件升级

    本文导读 随着产品的发展,正运动技术产品的固件也在不断更新与完善,新固件较老固件会解决一些客户的新需求与软件上的bug,增加了一些指令和功能,添加了更多的EtherCAT从站与io模块。因此,
    的头像 发表于 11-07 10:58 263次阅读
    脉冲全闭环EtherCAT运动控制器的<b class='flag-5'>固件</b><b class='flag-5'>升级</b>

    ip网络音频终端是什么

    IP网络音频终端是一种数字通信设备,它结合了网络技术和音频处理技术,用于实现网络环境下的音频通信和传输。 一、基本概念 IP
    的头像 发表于 10-08 14:52 423次阅读

    求助,INBOX300固件升级方法是什么?

    求INBOX300固件升级方法?
    发表于 07-25 07:46

    DM平台管理设备如何进行固件升级

    )查看注册状态 4)DM平台中添加设备,设备序列号通过设备系统界面或背板获得。 5)添加升级固件 6)配置超时时间,默认即可。 7)选择需要升级的设备 8)查看
    发表于 07-25 06:22

    ESP8266 12E如何升级到最新固件

    ESP8266 12E如何升级到最新固件
    发表于 07-22 07:03

    GPRS抄表技术是什么?

    1.GPRS抄表技术概述GPRS(GeneralPacketRadioService)抄表是一种基于移动通信网络的远程抄表技术,它利用GPRS网络
    的头像 发表于 06-17 16:11 441次阅读
    <b class='flag-5'>GPRS</b>抄表技术是什么?

    求助,通过UART进行基本设备固件升级的问题求解

    我正在研究设备固件升级代码 我可以修改代码,通过修改 common.mk 使其通过 UART 运行固件升级、 当我使用带有 I2C 接口的原始样品时,我注意到了不同之处,即
    发表于 05-28 07:45

    STM32F103能用U盘升级固件吗?

    STM32F103 能用U盘升级固件吗,如果有大侠用过,给指导一下操作方法
    发表于 04-12 07:46

    STM32 IIC通信升级系统

    诸神,需求一套可以使用IIC通信升级固件系统 1,STM32烧录板,型号自定,尽量低成本,程序 2,STM32G031G8U6目标板示例程序 有人能做这项目吗?或者大家有好的思路吗? 如果能接请联系425453660@qq.c
    发表于 03-20 12:40

    如何对miniprog4进行升级Firnware,需要下载固件吗?

    请问如何对miniprog4进行升级 Firnware,需要下载固件吗? 能否提供一个升级步骤,谢谢!
    发表于 03-06 06:43

    EtherCAT总线如何对从站固件进行升级

    EtherCATFOE是一种主站对从站设备固件升级的技术,通过利用EtherCAT的数据链路层来处理数据实现文件传输,可以确保文件传输的完整性和准确性,为设备的维护、
    的头像 发表于 02-27 08:23 840次阅读
    EtherCAT总线如何对从站<b class='flag-5'>固件</b>进行<b class='flag-5'>升级</b>?

    单片机通过USB升级固件的方法

    单片机升级固件的方法有很多中,比如:ISP(在系统编程)、ICP(在电路编程)、IAP(在应用编程)等。
    的头像 发表于 01-11 09:37 1980次阅读
    单片机通过USB<b class='flag-5'>升级</b><b class='flag-5'>固件</b>的方法

    网络对讲终端网络广播终端SV-7011V使用说明

    高速路sip广播对讲求助 隧道sip对讲调度SIP-7011 网络广播终端SV-7011 壁挂式对讲终端网络监听终端SIP广播
    的头像 发表于 01-04 14:24 493次阅读
    <b class='flag-5'>网络</b>对讲<b class='flag-5'>终端</b>、<b class='flag-5'>网络</b>广播<b class='flag-5'>终端</b>SV-7011V使用说明

    tl-wda5532re固件升级

    固件是硬件设备的内置软件,它控制设备的各种功能和特性。固件升级是指将设备的原有固件替换为新版本的固件,以提供更好的性能、功能和安全性。本文将
    的头像 发表于 01-04 10:40 868次阅读