传统的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"。
关键字:PSD32xx系列 单片机 无线远程IAP
引用地址:
基于PSD32xx系列单片机无线远程IAP的实现
推荐阅读最新更新时间:2024-03-16 14:28
基于MSP430单片机的实时多任务操作系统
摘要:实时多任务操作系统(RTOS)能有效提高嵌入式平台的资源利用效率,是嵌入式应用的必然趋势。本文阐述基于MSP430F149的RTOS——M430/OS。它由汇编写成、短小精干、占用系统资源少、运行稳定可靠,目前已在思达高科配网技术公司产品上得到应用。
关键词:RTOS 任务调度 MSP430
引 言
1 在MSP430上使用RTOS的意义
一般的观点认为,MSP430上使用RTOS是没有意义的这是可以理解的。因为MSP430的硬件资源有限(以MSP430F149为例,只有2KB RAM),任何商业操作系统都不可能移植到MSP430上。目前在MSP430上得到应用的RTOS,只有μC/OS-II,但使用μC/OS-
[单片机]
MCS-51系列单片机的指令系统的指令中操作数的描述符号
MCS-51系列单片机的 指令 系统中共为111条指令,分五大类: 数据传送类;(29条) 算术运算类;(24条) 逻辑运算类;(24条) 控制转移类;(17条) 位操作类。(17条) 指令中操作数的描述符号: Rn 工作寄存器R0 ~ R7 Ri 间接寻址寄存器R0、R1 Direct 直接地址,包括内部128B RAM单元地址、26个SFR地址。 #data 8位常数 #data 16 16位常数 addr 16 16位目的地址 addr 11 11位目的地址 rel 8位带符号的偏移地址 DPTR 16位外部数据指针寄存器 bit 可直接位寻址的位 A 累加器 B 寄存器B C 进
[单片机]
8.STC15W408AS单片机定时器/计数器
一、定时器计数器简介 STC15W408AS只有定时器0和定时器2,工作工作位定时器或者计数器模式。定时器/计数器的核心部件是一个加法计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟,则为定时方式,此时定时器/计数器每12个时钟或者每1个时钟得到一个计数脉冲,计数值加1;如果计数脉冲来自单片机外部引脚(T0为P3.4,T1为P3.5,T2为P3.1,T3为P0.7,T4为P0.5),则为计数方式,每来一个脉冲加1。 当定时器/计数器T0、T1及T2工作在定时模式时,特殊功能寄存器AUXR中的T0x12、T1x12和T2x12分别决定是系统时钟/12还是系统时钟/1(不分频)后让T0、T1和T2进行
[单片机]
MSP430系列与89C51系列的比较
1、89C51单片机是8位单片机。其指令是采用的被称为“CISC”的复杂指令集,共具有111条指令。而MSP430单片机是16位的单片机,采用了精简指令集(RISC)结构,只有简洁的27条指令,大量的指令则是模拟指令,众多的寄存器以及片内数据存储器都可参加多种运算。这些内核指令均为单周期指令,功能强,运行的速度快。 2、89C51系列单片机由于其内部总线是8位的,其内部功能模块基本上都是8位的虽然经过各种努力其内部功能模块有了显著增加,但是受其结构本身的限制很大,尤其模拟功能部件的增加更显困难。MSP430系列其基本架构是16位的,同时在其内部的数据总线经过转换还存在8位的总线,在加上本身就是混合型的结构,因而对它这样的开放型的
[单片机]
51单片机智能时钟设计
控制系统直接通过STC 8a8k64s4a12 单片机控制两组4位的数码管进行显示,使用DS1302时钟芯片进行获取时钟数据,使用DS18b20,获取温度信息,通过HC-05 蓝牙模块进行与手机app通讯,手机app由App Inventor 2编写 可以实现闹钟、用户设置数据的掉电保存,联机自动校时等功能。 作品实物如图所示: 数码管驱动: #include STC8.H #include shumaguan.H #include delay.H uchar code shuzi ={ 0xc0,//0
[单片机]
Proteus 入门教程之AVR 单片机的仿真实例
简介:本文为Proteus 的入门教程,AVR 单片机的仿真实例。 (一)、AVR单片机的仿真实例 本例是实现AVR驱动LCD1602,并用示波器监测数据线。 开始前先要准备好仿真文件,就是用编译器编译连接产生的调试或下载文件,不同编译器产生的文件格式是不同的,如ICC是COF、IAR是D90,GCC是COF、ELF。Proteus6.7sp3支持的有COF、D90、HEX等,ELF暂不支持。 本例用的是:lcd_C.hex。 开始了!!!!! 运行Proteus6Professional(ISIS6Professional)出现下面窗口: 1、添加元件到元件列表中:本例要用到的元件有:ATMEG
[单片机]
51单片机串口通信程序,支持自定义协议
单片机源程序如下: #include reg52.h /*51串口通信by沸腾的冰块/不拼不活*/ typedef unsigned int u16; typedef unsigned char u8; #define Data_SIZE 7 //存入数组RevBuf数据长度==uart_Data_SIZE-2 #define uart_Data_SIZE 5//协议实际长度(一个汉字占两位) u8 RevBuf ; //数据接收缓冲区 u8 indata ; //防数据抵消缓冲区 u16 data_count=0; //数据长度,串口中断自增 u16 temp_length=0; //数据长度,协议长度中转 u8
[单片机]
单片机定时/计数器设计输出PWM
一、定时/计数器PWM设计要点 根据 PWM 是利用微处理器的数字输出来对模拟电路进行控制的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点: 1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。 2.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决定了占空比的大小。PWM频率的计算公式为: 3.然后根据需要PW
[单片机]