基于μPSD32xx系列单片机无线远程IAP的实现
发布时间:2008/5/27 0:00:00 访问次数:536
引言
传统的mcu控制系统在下载程序时一般都是通过取下芯片用编程器烧写,或者采用isp方式进行在线编程。随着用户需求和使用环境的不断变化,就会要求系统程序被升级,而采用上述两种方式进行程序升级时都必须要有开发人员进行现场操作。这种升级方式对于终端分散的控制系统来说无疑极大地增加了开发成本,也延缓了程序的更新时间。因此,本文结合无线基站动态环境监控系统, 给出了基于μpsd32xx系列单片机无线远程iap(应用内编程)的具体实现方法,解决了上述问题。
系统架构
无线基站电源、空调、基站的室内环境等条件对整个系统能否正常运行是至关重要的,为了让无线基站有一个稳定、可靠的运行环境,因而设计了此采集系统。
针对以上环境,本采集系统下位机将基站电源、空调、基站内温度、湿度、烟雾、门控等集于一体,实时采集该系统所需要的各种数据,同时提供自动告警功能;上位机采用c/s模式设置不同级别的权限提供给各个监控中心。系统的数据传输采用gprs/gsm无线通信网络接入internet进行远程传输:下位机通过gprs/gsm把告警信息自动上传到监控中心或手机等;同时,监控中心或手机可以通过gprs/gsm网络对采集器进行查询、配置等操作,以满足不同的实际需要。在整个系统的设计过程中,为了对多任务进行高效的调度,选用了源码开放的μcosii嵌入式实时操作系统。
硬件设计原理
upsd32xx芯片简介
upsd32xx包含一个标准的8032微控制器模块和一个psd模块。采用模块化设计技术,不仪将构成一个单片机应用系统所需的多个功能块(如8032核、两个flash、sram、i/o、pld、usb接口、i2c接口、双uart口、用于液晶显示的ddc通道、pwm控制器、4路adc等)集成在单一硅片上,同时还可以通过jtag isp方式进行在系统编程,可简化嵌入式应用系统的设计、缩短产品的开发周期、提高系统的可靠性、降低成本并缩小产品尺寸。
由于μpsd32xx系列产品有主flash和第二flash两块存储器,使得设计人员可以在无需外加存储器的情况下对flash进行远程更新的同时对其执行应用内编程。
硬件接口设计
图1是系统的iap功能实现原理图。串口中的电平转换选用maxim公司的max202cpe芯片。由于在μpsd3234a的串口0中同时连接了gprs模块和门控系统模块,所以在其串口0接收中采用74ls11与门芯片。
主flash存储器由8个扇区组成,第二flash存储器由4个扇区组成。对flash的配置可以通过软件psd express来实现,配置结果如下:
第一flash仅作为数据空间:fs0:0~0x1fff&0x8000~0xffff(页码序号为0) fs1~fs7:0x8000~0xffff(页码序号为1-7)
第二flash仅作为程序空间:csboot0:0~0x1fff & 0x8000~0x9ff
csboot1:0xa000~0xbfff
csboot2:0xc000~0xdfff
csboot3:0xe000~0xffff
rs0:0x2000~0x3fff
csiop:0x200~0x2ff
下载程序时将启动程序分别下载到fs0、0~0x1fff和csboot0、0~0x1fff部分。用户程序下载到fs0~fs7、0x8000~0xffff部分。
软件设计与实现
gprs及模块
本设计选用的gprs模块是wavecom公司的q2406b,它是双频gprs/gsm模块(egsm900/1800mhz或egsm900/1900 mhz),内嵌完整的tcp/ip协议栈,直接通过at指令就可以接入internet,并且其设计开发符合etsi gsm phase2标准。单片机完全按照标准at指令使用9.6 kbps波特率通过串口与此模块进行通信。
模块的初始化程序如下:
其中,μpsd_uart_putchar("a b c d",0) 函数功能是:μpsd3234a通过串口0向gprs模块发送字符串"abcd"。
iap简介
iap是应用在flash程序存储器的一种编程模式。可以在应用程序控制下,对程序存储空间进行读取、擦除、写入操作。与isp操作非常相似,不需要从电路板上取下芯片用编程器烧写,都具有在线编程功能。两者之间的不同点是:isp通常是整片擦除、编程,在手工操作下通过pc串口下载程序到flash,而iap却是在某段程序的控制下对另外一段程序flash进行读写操作。
iap的实现
iap就是肩动程序把新的用户程序编程到指定的flash中。对flash程序存储器的读/写操作是实现iap的关键,下面给予详细介绍。
mcu可以像读rom器件那样读flash存储器,但只能使用特殊的擦除和编程指令对flash存储器进行编程。
flash存储器在被编程之前必须先被擦除。flash存储器的一个字节被擦除为全1(ffh),通过设置选择位为0来编程。mcu可一次擦除所有flash存储器或一个扇区,不能按字节擦除,
引言
传统的mcu控制系统在下载程序时一般都是通过取下芯片用编程器烧写,或者采用isp方式进行在线编程。随着用户需求和使用环境的不断变化,就会要求系统程序被升级,而采用上述两种方式进行程序升级时都必须要有开发人员进行现场操作。这种升级方式对于终端分散的控制系统来说无疑极大地增加了开发成本,也延缓了程序的更新时间。因此,本文结合无线基站动态环境监控系统, 给出了基于μpsd32xx系列单片机无线远程iap(应用内编程)的具体实现方法,解决了上述问题。
系统架构
无线基站电源、空调、基站的室内环境等条件对整个系统能否正常运行是至关重要的,为了让无线基站有一个稳定、可靠的运行环境,因而设计了此采集系统。
针对以上环境,本采集系统下位机将基站电源、空调、基站内温度、湿度、烟雾、门控等集于一体,实时采集该系统所需要的各种数据,同时提供自动告警功能;上位机采用c/s模式设置不同级别的权限提供给各个监控中心。系统的数据传输采用gprs/gsm无线通信网络接入internet进行远程传输:下位机通过gprs/gsm把告警信息自动上传到监控中心或手机等;同时,监控中心或手机可以通过gprs/gsm网络对采集器进行查询、配置等操作,以满足不同的实际需要。在整个系统的设计过程中,为了对多任务进行高效的调度,选用了源码开放的μcosii嵌入式实时操作系统。
硬件设计原理
upsd32xx芯片简介
upsd32xx包含一个标准的8032微控制器模块和一个psd模块。采用模块化设计技术,不仪将构成一个单片机应用系统所需的多个功能块(如8032核、两个flash、sram、i/o、pld、usb接口、i2c接口、双uart口、用于液晶显示的ddc通道、pwm控制器、4路adc等)集成在单一硅片上,同时还可以通过jtag isp方式进行在系统编程,可简化嵌入式应用系统的设计、缩短产品的开发周期、提高系统的可靠性、降低成本并缩小产品尺寸。
由于μpsd32xx系列产品有主flash和第二flash两块存储器,使得设计人员可以在无需外加存储器的情况下对flash进行远程更新的同时对其执行应用内编程。
硬件接口设计
图1是系统的iap功能实现原理图。串口中的电平转换选用maxim公司的max202cpe芯片。由于在μpsd3234a的串口0中同时连接了gprs模块和门控系统模块,所以在其串口0接收中采用74ls11与门芯片。
主flash存储器由8个扇区组成,第二flash存储器由4个扇区组成。对flash的配置可以通过软件psd express来实现,配置结果如下:
第一flash仅作为数据空间:fs0:0~0x1fff&0x8000~0xffff(页码序号为0) fs1~fs7:0x8000~0xffff(页码序号为1-7)
第二flash仅作为程序空间:csboot0:0~0x1fff & 0x8000~0x9ff
csboot1:0xa000~0xbfff
csboot2:0xc000~0xdfff
csboot3:0xe000~0xffff
rs0:0x2000~0x3fff
csiop:0x200~0x2ff
下载程序时将启动程序分别下载到fs0、0~0x1fff和csboot0、0~0x1fff部分。用户程序下载到fs0~fs7、0x8000~0xffff部分。
软件设计与实现
gprs及模块
本设计选用的gprs模块是wavecom公司的q2406b,它是双频gprs/gsm模块(egsm900/1800mhz或egsm900/1900 mhz),内嵌完整的tcp/ip协议栈,直接通过at指令就可以接入internet,并且其设计开发符合etsi gsm phase2标准。单片机完全按照标准at指令使用9.6 kbps波特率通过串口与此模块进行通信。
模块的初始化程序如下:
其中,μpsd_uart_putchar("a b c d",0) 函数功能是:μpsd3234a通过串口0向gprs模块发送字符串"abcd"。
iap简介
iap是应用在flash程序存储器的一种编程模式。可以在应用程序控制下,对程序存储空间进行读取、擦除、写入操作。与isp操作非常相似,不需要从电路板上取下芯片用编程器烧写,都具有在线编程功能。两者之间的不同点是:isp通常是整片擦除、编程,在手工操作下通过pc串口下载程序到flash,而iap却是在某段程序的控制下对另外一段程序flash进行读写操作。
iap的实现
iap就是肩动程序把新的用户程序编程到指定的flash中。对flash程序存储器的读/写操作是实现iap的关键,下面给予详细介绍。
mcu可以像读rom器件那样读flash存储器,但只能使用特殊的擦除和编程指令对flash存储器进行编程。
flash存储器在被编程之前必须先被擦除。flash存储器的一个字节被擦除为全1(ffh),通过设置选择位为0来编程。mcu可一次擦除所有flash存储器或一个扇区,不能按字节擦除,
上一篇:基于单片机的等精度数字测频