
51405038-175
Honeywell霍尼韦尔CC-PAIH01(51405038-175),现货销售,顺丰包邮,欲购从速。详情描述:引言随着嵌入式系统技术的发展,电可擦除的Flash存储器由于具有容量大、成本低、编程方便等优点,在微控制器领域得到了广泛的应用。Flash微控制器在正常运行前必须将Flash写入用户应用程序,目前对微控制器的Flash程序存储器进行编程的方法主要有出厂固化、编程器编程、在系统编程(InSystemProgramming,ISP)和在应用编程(InApplicationprogramming,IAP)4种。其中,出厂固化和编程器编程方法都要求微控制器在焊接前将程序写入,这显然不满足开发阶段的调试和日后升级的需要。目前比较普及的是在板可编程的ISP和IAP方法。ISP是通过微控制器的串行编程写入应用程序,需要少量的外部电路辅助实现;IAP将Flash映射为用户程序和Bootloader两个存储区,Bootloader可通过系统已有的USB、串口、SPI、I2C总线等各种通信接口,对用户程序进行更新而不需要外部电路辅助,实现更加灵活,可方便地实现程序的在线及远程升级。在利用ATmega88微控制器开发四旋翼飞行器的无感无刷直流电机驱动器时,由于定时器PWM输出口与SPI接口存在引脚共用问题,用SPI口进行ISP编程时会使MOS管误导通而烧毁。由于驱动器中的4个ATmega88微控制器是通过I2C总线通信的,为了调试和升级方便,提出并实现了通过I2C总线对***R微控制器进行在应用编程的方法,包括Bootloader程序、I2C总线的PC机串口模拟、上位机程序及相关的通信协议。实践证明,该方法可成功实现I2C总线上多个ATmega88微控制器[1]的在线升级。1ATmega88微控制器的Bootloader设计ATmega88是一款基于***R增强RISC体系结构的CMOS低功耗8位微处理器,它通过执行强大的单周期指令,达到接近1MIPS/MHz的运算效率。ATmega88的Flash被分为128个大小为64字节的页面,Flash的编程操作都是以页面为单位进行的。为了用户程序的安全性,以及用户的ISP和IAP编程需要[2],ATmega88的Flash存储空间被分为引导程序区(BootloaderSection)和应用程序区(ApplicationProgramSection)两部分。引导程序区为非同时读写区,应用程序区为同时读写区。在非同时读写区内执行的代码可以对同时读写区内的页面进行编程操作,根据这一机制我们可以编制Bootloader程序并将其存储于引导程序区内,以实现应用程序区代码的在线与远程升级。由于ATmega88分配给引导程序区的空间大小有限(***大2KB),Bootloader程序一定要简洁而***,图1给出了以I2C总线为通信接口的Bootloader程序流程图。利用I2C总线实现ATmega88的在应用编程为了能够执行Bootloader程序,ATmega88熔丝位中的BOOTRST应设为零,这样在系统上电或应用程序接收到升级命令利用看门狗复位后,系统就能从引导程序区运行Bootloader程序。Bootloader程序中维持了一个溢出时间为2s的定时器,该定时器利用TIM1以查询的方式实现。没有程序更新或程序更新完毕,程序在2s内没有从I2C总线接收到数据帧时则利用(*((void(*)(void))(00000)))函数跳转到应用程序区执行应用程序,在2s内接收到数据帧后,则将定时器重置,以继续接收数据帧更新应用程序。在Bootloader实现中,ATmega88的I2C总线工作在从模式,上位机的I2C总线工作在主模式。上位机发送的数据帧由2字节的Flash页面地址、64字节的页面数据、1字节的密码和1字节的异或校验和构成。Bootloader接收到数据帧后会用数据长度、密码、异或校验和对数据帧进行校验,校验正确的话则根据数据帧中Flash的页面地址和数据相应的Flash页面进行编程,并将flag置1;校验错误的话,则丢弃数据帧等待重发的数据帧。上位机在发送数据帧后读取flag,并根据其状态重发数据帧或发送下一页面的数据帧。flag被读取后Bootloader程序将其清零,这样就形成了一个简洁而有效的差错控制机制。Flash中页面的编程由页擦除和页编程两个过程组成,页擦除由***R库函数中的boot_page_erase(addr)函数实现,addr为相应页面中的字节地址。ATmega88的Flash是以页为单位进行擦除和写入操作的,因此在进行Flash页面写入前,要多次调用boot_page_fill(addr,data)函数将整页的程序代码写入临时缓冲区,其中addr为指令所要写入的字节地址,data为相应的由2个字节构成的16位程序指令。Flash页面的写入由boot_page_write(addr)函数实现,addr为相应页面中的字节地址。BTV20.2CA-64B-33C-D-FWAEGAS-8534-000AEGAS-P120-000AEGAS-J890-101AEGAS-S908-011AEGPC-0984-455AEGAS-B872-002AEGAS-B828-016AEGPC-E984-265AEGAS-B872-002AEGDAP208AEGNW-RR85-000AEGNUL200AEGS908AEGAS-B840-108AEG170BDI54250AEGAS-B846-001AEGPC-A984-120AEGAS-B829-116AEGAS-B350-001AEGMM-PMA2-100AEG3240/5200AEG120-089-006AEGAS-P120-00AEGAS-BDEP-218AEGPC-***84-230AEGPC-E984-685AEG1-PE-0001-000IBM59H2682TellabsPWPQH151ABHoneywell2VM62-020-5HPS100760406ZenithPWMT-200***ayaLucentTN2181V8AEGAS-P120-000AEGAM-S985-042AEGAS-C921-101AEGAS-B804-016AEG170BDM34200AEGAS-BDAU-202/ASBDAU202AEGPC-A984-145AEGAS-B360-001AEGAS-B885-111AEGAS-BDEP-210AEGAS-B804-116AscoSC8210G87Chiller0375-362-21***ayaTN754Philips1240/00RadyneDMD2050TektronixMIL-3600TEKNetgearFVS318AppleA1047DynaparH23200011011J***ayaTN748CV5Oriental4TK10CGN-ASun3701704***ayaLucentTN760DCMSA5X70Compaq007902-001ReutersCA-AKPT-0001Haydon87H4B-05-006ENGSiemens6ES5315-8MA11Cisco2650XM***ayaTN747BV8***ayaTN747BNetAppEMA-XF500-201-G1Phillips275801ToshibaDKT2104-CBSimpleTech8500-0031-001SeagateST330620ASkystreamEMR-1600***RM-P110Startek299ATBogenM300***ayaTN767EHoneywell2VM62-020-5PanasonicTNPA4242PanasonicTNPA4055***aya120A4***AYA617U33-K***aya103G13***ayaTN573B***ayaTN750B***ayaTN2302AP***ayaTN801B***aya391C1***ayaPG-5E385***ayaTN801***ayaTN750CV8Compaq007912-001Asco103-833-1-D***ayaTN746BSTB1X0-0271-307MDCK100-5BlackSP400A-R2Cisco34-0667-01Exide101073070-0013664TRICONEX3721TRICONEX07DI92GJR5252400R010107DI92GJR5252400R410107AI91GJR5251600R020207AI91GJR5251600R4202FBM214FBM215FBM204卡件P0914SYFBM204端子P0916AGFBM204电缆P0916DBFBM241卡件P0914TGFBM241端子P0916ASFBM241电缆P0916FHFBM241C卡件P0914WMFBM241C端子P0916AWFBM241电缆P0916FH2094-BM02-S651CD2S2NDSQ***31IC697CMM742MTM-120-S-A20-120VATRICONEX5101TRICONEX5201TRICONEX5301TRICONEX5401TRICONEX5351FBM201FBM07BFBM237FBM242ENIMKSDCG-100AENIMKSDCG-100ENIMKSDCG-200ZENIMKSDCG-100DCMKSDCG-200ZOPTIMAOPT-100Z-00ENIMKSDCG-200ZHC-S02DCG-200ZDC22S-Z022000010AENIDCG-100ADCG4M-A001101010ENIDCG-100ADC26M-Z011100010CENIDCG-100ADCG2M-A001200020CENIDCG-100ADCG2M-A001200020MAENIDCG-200ZDC21M-Z041300110AENIDCG-200ADC22M-A041300111ALENIDCG-200ZDC22M-Z041300111AENIDCG-200ZDC22S-Z122000010AENIDCG-200ZDC24M-Z041300110AENIDCG-200ZDC24M-Z041300111AENIDCG-200EDCG-400E-00OptimaDCG-100ADCG1M-A001200020CDCG-100ADCG1M-A001100020VDCG-100ADCG1R-A021200021DCG-100ADCG2D-A001100020MADCG-100ADCG2D-A031100021DCG-100ADCG2S-A022000010DCG-100ADCG2S-A022001010DCG-100ADCG2S-A122000010RPG-50RPG-100DSQC6393HAC025097-001DSQC6793HAC028357-001DSQC633A***B板3HAC031851-001)