在断电的时候对芯片的端口地址进行配置有用吗

交换芯片在智能电网录波及网络记录装置中的应用
> 交换芯片在智能电网录波及网络记录装置中的应用
交换芯片在智能电网录波及网络记录装置中的应用
摘要:智能变电站改变了的方式,一次设备集成的采集器负责数据采样,然后通过光以太网将采样数据以网络报文的形式发送给二次设备。介绍采用以太网交换芯片扩展网络接口在和装置中的应用研究,介绍实践中遇到的问题及解决方法,并分析存在的问题和其适用的范围。本文引用地址:引言智能变电站改变了的方式,一次设备集成的采集器负责数据采样,然后通过光以太网将采样数据以网络报文的形式发送给二次设备。二次设备需要多个网口接收采样数据报文,尤其是集中式装置和装置一般需要8个左右的光以太网采集口,而在GOOSE报文点对点接入方式下需要的光以太网就更多了。以往嵌入式CPU没有这么多网口,于是采用交换芯片扩展以太网接口就成为首选方案。1 设计方案及平台介绍1.1 设计平台基础硬件采用POWERPC为核心,主频为800 MHz,支持两个RGMII接口;软件采用嵌入式Linux,内核版本为2.6. 25。1.2 设计方案系统硬件以PowerPC
CPU为核心,外围模块包括内存、SATA硬盘、LED指示灯、NORFlash、扩展网口的交换模块、JTAG调试口、串口控制台、独立的千兆以太网口。系统框图如图1所示。主要功能如下:①其中大容量内存用于Linux系统及应用程序运行,以及网络报文数据和数据缓冲;②SATA硬盘用于报文数据和录波数据记录存储、Linux根文件系统存储;③LED指示灯用于指示程序运行状态;④Nor Flash用于Linux内核和U-boot存储;⑤交换模块对外负责接入8个百兆光以太网口,CPU通过RGMII数字接口相连,将8个百兆光以太网口采集的数据汇集到CPU;⑥JTAG调试口用于硬件调试;⑦串口控制台,用于程序及驱动调试;⑧独立的千兆以太网口负责和后台通信。2 基本驱动程序设计交换芯片厂家提供交换芯片的驱动、SDK源码、例子,但是没有针对本平台的解决方案,基本驱动需要实现上层函数对交换芯片进行配置操作,实际网络驱动只需要把相应端口配置好,在Linux设备树文件中定义好,就可以使用Linux通用网络驱动进行网络通信。2.1 mii_read/mii_write接口函数实现mii_read/mii_write是上层函数对交换芯片配置操作的函数,通过RGMII硬件接口实现。在Linux系统中对硬件操作不能有上层函数直接访问,需要通过驱动接口实现上层函数对底层硬件的访问,本方案通过设备属性文件的读写实现对底层硬件端口的配置读写。具体步骤如下:①在内核层,利用Linux的device_attr(),在文件系统中增加设备属性。内核代码需要修改的文件为Gianfar_mii.c。◆定义sysfs_reg_io函数实现硬件直接读写,本处文件读写传递参数为字符串,故需要相应转换。 ◆绑定设备属性文件reg_io,对其读写实际执行的是sysfs_reg_io。static DEVICE_ATTR(reg_io,S_IWUSR | S_IRUSR,sysfs_reg_io,sysfs_reg_io);◆在int gfar_mdio_probe(struct devrice*dev)添力口以下代码中的实现设备属性文件到系统。dev_set_drvdata(dev,new_bus);device_create_file(dev,dev_attr_reg_io);②在用户层需要修改mii_read/mii_write函数的具体实现,示例代码采用的是硬件直接访问,本处需要使用对reg_io文件的读写实现,注意传入参数需要和sysfs_reg_io函数的处理一致。具体修改哪个文件,在不破坏SDK接口的情况下查找相应函数名修改,修改后代码如下: ③多地址配置。交换芯片的各个端口和PHY的配置端口的访问分为两种模式:单地址模式和多地址模式。单地址模式还是多地址模式通过交换芯片的硬件跳线选择,单地址模式指交换芯片的各个端口和PHY分别占用MDIO的设备地址空间,而多地址只占用一个MDIO设备的地址空间,这个设备地址空间的特殊寄存器实现各个端口和PHY的多地址复用访问。在实际使用中,如果交换芯片使用单地址模式,交换芯片占用了所有的MDIO设备地址空间,和另一个独立的千兆网口的MDIO设备地址冲突,故本方案采用多地址模式。多地址模式除了需要硬件配置外,还需要在SDK中相应配置。本系统需要宏定义:#ifdef
MULTI_ADDR_MODE。有了这个宏定义,实际访问交换芯片的函数为MultiAddrRead/MultiAddrRead,通过交换芯片的命令寄存器和数据寄存器访问。配置efg.mode.baseAddr=0x10为交换芯片地址(和交换芯片地址跳线相关);配置cfg.cpu
Port Num=10为交换芯片和CPU相连的端口地址,本例中为10口。3 CPU和以太网RGMII连接驱动配置由于CPU是通过RGMII数字接口和交换芯片直接相连,中间没有PHY,故需要在设备树中直接定义连接配置为固定波特率模式。有PHY的配置,例如phy&handle=phy2&,实际波特率配置需要配置相应PHY的寄存器或者自适应;固定波特率模式配置,例如fixed&link=1
1 &,表示全双工1000 Mbps(nopause and no asym_pause)。4 数据汇集以及互相隔离设计智能变电站中,过程层交换机为了控制流量,一般采用划分VLAN的方式隔离应用无关以太网端口,而不同以太网端口可能都要接入同一个录波装置或网络报文记录仪设备。实际应用中出现过录波装置内部不同网口之间有交换功能,导致网络回环、网络瘫痪的情况,这就要求装置的数据接入口之间必须要隔离。采用划分VLAN的方式现场维护困难,实际应用中采用端口见物理隔离的方法。实现方案如下:交换芯片用于数据采集的0~7号端口、8号端口(实现1588对时)、9号端口(用于和口头通信)之间互相隔离。0~9号端口都和10号端口通信(10号端口和CPU相连汇集0~7口的数据)。通过配置交换芯片所有端口的0x06控制寄存器可实现该功能,该寄存器名为端口级VLAN映射(PORT Based VLAN
MAP)。其中的10:0位指示VLANTable,其中每一位对应一个端口,置1表示该端口输入的数据会发到相应端口(如5端口的VLANTable=0x003表示5端口的数据会转发给0端口和1端口)。实际配置0~9端口读取寄存器内容,和0x400按位&与&之后回写。10端口读取寄存器内容和0x300按位&与&之后回写。结语由于交换芯片造成的延时具有不确定性,且所有端口数据汇集到千兆口由CPU负责接收会造成排队现象,本方案不适合对时间精度要求较高(&s)的SV报文记录,但是由于本方案端口多,带宽大适合作为GOOSE及MMS报文的记录,及时GOOSE和MMS突发性报文较多本方案也能轻松记录。实际测试本方案可记录600~800
Mbps的流量(视报文大小不同)。基于交换芯片的嵌入式智能电网录波及装置数据采集方案,有效解决了GOOSE及MMS大容量、突发性报文记录的问题,性价比较高。在实际应用中,由于录波和网络记录装置采集端口多,甚至可以减少智能变电站过程层网络交换机需求。
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一基于STM32的无线通信模块设计-ST技术方案-意法半导体STM32/STM8技术社区
基于STM32的无线通信模块设计
发布时间:
来源:互联网
随着网络和现代通信技术的不断发展,远程无线通信技术经过多年的研究与实际应用,现如今在工业控制领域有了非常重要的地位,并且发挥着越来越大的作用。文中根据厂家的要求,设计的无线通信模块,主要实现了短信与数据收发功能,并且做到了模块的稳定,掉线之后能够自动重连。
1 无线通信模块整体设计方案
模块主要有电源部分、主控部分、通信部分、数据传输部分4个部分组成。通信模块采用SIM900A进行无线通信。主控模块采用STM32作为主控芯片,来控制短信的收发与数据传输的顺利进行。远程终端可以是手机或者上位机的数据中心软件,经过处理之后,储存下来,方便日后的查询。本模块具有低功耗,方便灵活,操作简单并且稳定,掉线之后可以自动连接,运行过程十分稳定,并且成本较低。
2 无线通信模块硬件设计
2.1 功能需求
本文设计的无线通信模块,要求单12V电源输入,模块上电运行后有相应的指示灯来指示模块的运行状态。另外要求模块能够实现短信以及数据透传两大主要功能,在手机发送短信给模块之后,模块能够动作,并给出回应。最后要求在建立TCP链接时,仍然能够收发短信。
图1 无线通信模块结构图
2.2 电源部分
在主电路中,主控芯片STM32的工作电压为2.0~3.6 V,通信芯片SIM900A的工作电压为3.1~4.6 V,为使模块各个部分正常工作,必须对两者进行分别供电,电源供电电路如下:
图中V12外接12 V电源,经过电容滤波后输入到LM2576,实现12 V到4 V的转换,R1、R2在线路中起到分压作用,D2灯亮起时,表示模块已经正常供电。LM2576是美国国家半导体公司生产的3 A电流输出降压开关型集成稳压电路,具有完善的保护电路,比较稳定。
图2 电源模块
2.3 主控芯片
主控模块采用STM32单片机作为微控制器,该芯片能工作于-40~105℃的温度范围,MAX3232芯片用于串行口的电平变换,实现控制器与通信接口之间的通信。串口1与电源电平转换芯片Max3223相连,USART1_TX(输出,所以在配置GPIO时,定义该口的模式为推拉输出,USART1_ RX为输入,定义为悬浮输入模式。串口2与SN65LBC184D通信,实现数据的收发,USART2_RTS、USART2_RX为输入端口,模式定义为悬浮输入模式,USART2_CTS、USART2_TX为输出端口,模式定义为推拉输出。串口3用来控制SIM900A芯片,USART3_RTS、USART3_RX为输入端口,模式定义为悬浮输入,USART3_CTS、USART3_TX为输出端口,模式定义为推拉输出。
图3 主控芯片STM32
2.4 通信芯片
通信芯片采用SIMCom公司的新型紧凑型产品SIM900A,它属于双频GSM/GPRS模块,完全采用SMT封装形式,性能稳定,外观精巧,性价比高,并且能够满足用户的多种需求。在实现断线自动重连功能时,涉及到DCD、RI两个引脚的使用。DCD引脚用来实现模数转换,当模块掉线时,会给DCD引脚一个高电平,当这个电平被DCD引脚检测到之后,模块就是采取相应的动作,来重新连接上线。RI引脚在模块上线之后,就一直保持高电平,在有电话和短信进来的时候,RI管脚就会有一个低电平出现,当RI引脚检测到这个低电平的时候,模块就会采取相应动作,进入到短信或者电话模式。
图4 SIM900A通信芯片
3 无线通信模块软件设计
3.1 STM32的底层配置
为了实现STM32单片机与SIM900A模块之间的数据通信,实现短信收发与数据传输两大功能。首先要搭建开发平台,在工程中加入需要用到的库函数以及配置文件,然后配置系统时钟、中断控制器、输入输出的GPIO以及相应的串口。在配置这些参数的时候,首先需要对照原理图进行编写,然后查看芯片用到哪些端口和这些端口的作用,这样才能保证无误。接下来就要对各个部分进行配置,以保证模块能够正常运行。
3.1.1 串口配置
开发环境搭建好之后,就可以配置端口参数了。对于本模块,设置USART传输的比特率为9 600 b/s,字长为8 bit,1bit停止位,无检验模式。在对串口1、2、3初始化之后,打开串口的中断响应函数:USART_ITConfig(USART1,USART_IT_RXNE,ENABLE)(以串口1为例),使能相应的串口:USART_Cmd(USART1,ENABLE),这样串口的配置就基本完成了。
3.1.2 中断控制器的配置
首先配置优先级分组,设置先占优先级1位,从优先级3位。本模块定义了5个全局中断,分别为:两个RTC全局中断、USART1全局中断、USART2全局中断、USART3全局中断,分别对每一个中断配置优先级,使能串口再初始化即可。需要注意的是,PC15管脚作为EXTI15的外部中断输入管脚,当该管脚的电平为低电平的时候触发,模块进入短信模式,因此给这个中断一个比较高的优先级,所以定义该中断先占优先级1位,从优先级0位。在设置优先级的时候,必须根据模块的运行情况,选择最优的中断分组和优先级,才能保证程序运行时,能够快速的响应中断。
3.2 无线通信模块短信功能的实现
1)短信收发具体过程
短信功能的实现主要涉及到两个关键部分,一个是AT命令,另一个是串口的读写。AT命令是主控芯片STM32和SIM900A之间的通信协议,完成对SIM900A的控制。短信的收发主要有两种模式,一种是文本模式,该模式只支持英文内容,另一种是PDU模式。本模块在完成初始化之后,首先通过USART向SIM900A发送&AT+回车&命令来检查AT命令是否正常工作,如果返回OK,则表示能够进行接下来的短信功能。
SIM900A的短信功能主要分为两个部分,第一:读取短消息。读取短消息的设置命令为:AT+CMGR,该命令生效后有两个返回值:index和mode,index就是接收到的短信的编号,我们将接收到的index内容放在一个长度为30的buf中,再将buf写入到串口3中,然后再读取串口3中的内容,这样,短信的编号就获取完毕。获取了短信的编号之后,就能去获取短信的具体内容,而短信的内容则存放在alpha中,它处于响应的第三个位置,通过get_fw(at_string,phnum,19,2)可将短信的内容取出来,这样短信的内容就获取到了。第二:发送短消息。发送短消息的设置命令为:AT+CMGS,首先将发送短信的电话号码存入到一个buf中,将这个buf写入到串口3中,以此获取手机号码。而短信在发送的时候,短信内容之前会带一个&&&号,在程序设计时,只要检测到&&&号时,后面的内容也就是短信发送的内容,最后将短信的内容写到串口3即可。
2)相应的AT命令
3.3 短信命令的定义
本模块自定义了许多短消息命令来设置或者查询模块的参数,具体为:SIP:IP地址设置命令、SPT:端口号设置命令、DID:ID号设置命令、ACON:自动连接命令、PRT:打印命令、LIVE:心跳操作命令、CSQ:信号强度查询命令。这些指令通过短信的方式来实现对模块的操作。
拿SIP来举例,它的实现过程为:首先把短信中的&=&之前的字符取出来存放在sms_cmd中,然后将sms_cmd与SIP、SIT、DID、ACON、PRT、LIVE、CSQ来比较,如果等于其中一个,则程序跳转到相应的部分来执行相应的操作。这里,strcmp(sms_cmd,&SIP&)==0,程序跳转到SIP部分来执行IP部分的操作。然后,将&=&之后的字符取出来存放在sms_para中。通过字符串比较函数来判断它是&?&还是数字。如果是&?&,则表示该短信命令是一个查询命令,就只需要用输出显示IP号给用户看。如果是数字,则表示该短信命令是一个设置命令,就需要重新设置某些参数值,来改变模块的运行过程。对于SIP,如果&=&之后是数字,就表示该短信是用户用来设置模块的IP地址的。此时,就要把当前的IP值赋给模块的IP值就可以了。最后输出显示IP地址设置成功,则SPT部分的操作就完成了。
4 无线通信模块数据传输的实现
4.1 数据格式的定义
数据包的具体格式如下:
数据包头已经定义为S_PACKET_HEADER结构类型,link_id为DWORD类型,对于发送,填写目标link_id,对于接收到的数据包,则为源link_id(由服务器自动转换填写),结束标志为0x01,数据Data则根据具体的命令而各不相同。
4.2 登陆、退出的协议过程
后台软件根据指定的服务器地址和端口号发起TCP连接请求,连接成功后开始命令交互。工作过程描述如下:
1)后台软件首先采用CMD_LOGIN命令,登陆到通信服务器,在登陆成功之前,发送其他任何命令服务器都不处理。发送CMD_LOGIN:FORWARD给服务器,携带数据为S_TERMINAL。该命令的目标link_id设为0,表示发送给服务器,而不是给其他终端。
2)服务器在CMD_LOGIN:RESPONSE_OK中将其他在线模块的信息发送过来,从而在客户端应用程序形成在线模块列表。后台若收到CMD_LO GIN:;RESPONSE_FAILED回应,则失败。收到CMD_LOGIN:RESPONSE_OK回应,则成功,携带数据为S_TERMINAL。
3)后台软件定时发送CMD_KEEP_LIVE命令,以维持链路不被网络和服务器终止。每个在线设备必须在一定的时间间隔内向服务器发送CMD_ KEEP_LIVE信息。服务器将对此作检查,若某设备在一定的时间间隔内没有发送CMD_KEEP_LIVE信息,则认为该设备已经&死亡&,服务器将
断开其连接。
4)后台软件可对模块列表中的任意模块进行操控。
5)后台软件退出时,用户设备应首先发送CMD_LOGOFF命令到服务器,告诉服务器&我要退出&,该命令的目标link_id设为0。在发送CMD _LOGOFF:FORWARD给服务器时,不需要携带数据。
图5 登陆,推出的协议过程
4.3 数据传输具体过程
首先要定义建立TCP连接与关闭TCP连接的函数,涉及到的AT指令为AT+CIPSTART和AT+CIPCLOSE。建立TCP连接时,先把AT+CIPSTART指令写到串口3中,然后该指令生效后,会返回一个&CONNECT&,之后只要检测到有返回值&CONNECT&,就表示TCP连接已经建立成功。关闭TCP
连接与建立TCP连接类似,AT+CIPCLOSE指令生效后会返回一个&CLOSE OK&,只要检测到&CLOSE OK&,就表示TCP连接已经关闭。
TCP连接建立好以后,透传模式就已经被开启,此时就可以实现数据的发送与读取。
当用户要发送数据时,就必须根据数据包的结构来发送数据,首先把包头写入到串口3中,如果有数据,则把数据内容和接收对象一并写入到串口3中,这样数据的发送就完成了。
读取数据时,只要有数据过来,就一次一个字节,把数据存放到user_string中,然后i++,再次接收数据。
至于数据读取到什么时候结束,本程序定义了3种结束的情况:1)如果用户定义了数据的长度,就读取到最后一个字节才结束。2)如果用户没有定义数据的长度,就在读取到回车符的时候结束。3)如果遇到既没有已定义的数据包长度,又没有读取到回车符的情况时,就在数据存放的长度超过user_string总长度的四分之三的时候结束,或者在超过100毫秒没有数据发过来的时候结束数据的读取。
4.4 相应的AT命令
5 断线重连的处理
5.1 TCP链接的关闭和建立
TCP链接的建立涉及到的AT命令是at+cipstart,该指令有两个返回值,分别是模块的IP地址和端口号。首先将at+cipstart指令返回的当前模块的IP地址和端口号存放到一个buf中,然后将这个buf写入到串口3中,如果之后能够读取到返回值&CONNECT&,就表示TCP链接已经建立好。
TCP链接的关闭涉及到的AT命令是at+cipclose,该指令没有返回值,可以直接将该指令写到串口3中,如果检测到&CLOSE OK&,就表示TCP链接已经被关闭。
5.2 DCD的检测
当TCP建立起来之后,DCD引脚的电压值便由高电平变为低电平,因此DCD引脚的电平状态可以用过来指示TCP的连接情况。在程序中,本文设置时钟在检测DCD引脚的状态值,当该引脚的电平值由高电平变为低电平时,就表示模块模块已经掉线,然后模块就重新开始登陆,直到登陆上为止。
5.3 TCP链接下的短信收发
本文定义了一个全局中断,当有短信或者电话到达模块时,RI引脚的电平便会由高电平变为低电平,此时便会触发全局中断,模块立即转而处理短信收发或者数据传输。
6 测试效果
本模块在设计完成之后,在实验室稳定运行了2周时间,没有出现什么问题。然后又进行了特殊情况的测试,在模块断电后恢复供电,数据中心断电后重新上电的情况下,都能够重新连接上线,并且能够继续稳定运行。随后模块又被送到厂方使用,在被使用了3周之后,厂方反应模块运行情况良好,没有掉线的情况。
本文设计的无线通信模块,是利用STM32来控制SIM900A芯片,来实现短消息的收发与数据的无线传输。本设计完成了无线通信的硬件部分和软件部分的设计与实现。在多次运行试验时,本模块没有出现掉线以及发热等问题,非常稳定。本次设计成本较低,运行稳定可靠,应用范围十分广泛,利用SIM900A,降低了模块的成本,使其更加具有商业价值。
市场研究公司Gartner称,2017年全球物联网(IoT)设备数量将达到84亿,比2016年的64亿增长31%,2020年物联网设备数量将达到204亿,高速增长的市场蕴含着巨大的商机。物联网从架构上可以分为三个层次:网络层、传感层和应用层,三个层次都和MCU密不可分,从细小节点到传感中枢再到应用平台,MCU扮演着重要角色。
意法半导体的AlgoBuilder 固件开发工具能将写代码工作从固件开发中分离出来,让用户使用可立即编译的STM32 *微控制器(MCU)运行的函数库模块,在图形用户界面上创建传感器控制算法。以简化基于意法半导体MEMS传感器和MCU的物联网设备开发为宗旨,AlgoBuilder工具有助于快速创建并运行概念验证模型。
中国,日——横跨多重电子应用领域、全球领先的半导体供应商意法半导体宣布正式收购专业软件开发公司Draupner Graphics。Draupner Graphics是TouchGFX软件框架的开发商和供应商。TouchGFX为嵌入式图形用户界面(GUI)提供出色的图形处理性能和流畅的动画效果,同时对资源的需求和功耗极低。
中国,日——意法半导体用于连接蜂窝物联网的STM32*探索套件今年早些时候首次亮相2018年嵌入式系统展会和亚洲物联网展会,现在,客户可以通过意法半导体全球分销网订购。该套件现有两款产品可选,每款产品都包含STM32L496探索板和集成Quectel调制解调器的STMod +蜂窝扩展板...
如今的嵌入式电子设备越来越智能,“智能”的一个标志,就是Ta能够和用户进行更加自然和高效的“沟通”。这就需要一个功能更为强大的人机交互界面(HMI)做支撑。因此越来越多的智能产品,不管是新兴的物联网产品,还是智能家电或智能制造设备,都会将图形化界面(GUI)作为HMI的主要形式...
18158 观看
17025 观看
Tel: 3-8064
备案号: 苏ICP备号-2 上传我的文档
 上传文档
 下载
 收藏
粉丝量:42
该文档贡献者很忙,什么也没留下。
 下载此文档
微机接口技术课后答案(刘乐善)
下载积分:1200
内容提示:微机接口技术课后答案(刘乐善)
文档格式:DOC|
浏览次数:346|
上传日期: 08:22:20|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1200 积分
下载此文档
该用户还上传了这些文档
微机接口技术课后答案(刘乐善)
关注微信公众号Coming Soon...AT89LP系列单片机编程器-电子产品世界论坛
AT89LP系列单片机编程器
一.WSF-USBISPV3编程器简介
WSF-USBISPV3编程器是WSF-USBISP下载线的升级版,功能更全,速度更快,下载更稳定,支持的芯片更多。为吴师傅工作室独家研发产品,其配套软件AT89LPISP软件也是吴师傅工作室开发,适用于Atmel AT89S系列和AT89LP系列单片机在线编程。编程器通过USB电缆与PC机连接,使用10P灰排线与目标板进行SPI通信。编程器不仅具有可在线编程功能还具有电源线供电功能,有5V和3.3V两种软件选择编程电压,实现编程器和电源线合二为一,无需外部电压,让您的目标板使用起来更加简洁、方便。是您使用笔记本电脑开发Atmel&&LP系列单片机的首选开发工具。如图:
二.WSF-USBISPV3编程器软件支持
支持软件:AT89LPISP。该软件在VS2010集成开发环境下采用C#语言编写,编程功能齐全,操作简单,运行稳定。软件界面如下图:
三.WSF-USBISPV3编程器支持器件
AT89S51、AT89S52、AT89LS51、AT89LS52、AT89S8253、AT89S2051、AT89S4051、AT89LP51、AT89LP52、AT89LP2052、AT89LP4052、AT89LP213、AT89LP214、AT89LP216、AT89LP428、AT89LP828、AT89LP3240、AT89LP6440、AT89LP51RB2、AT89LP51RC2、AT89LP51IC2、AT89LP51RD2、AT89LP51ED2、AT89LP51ID2。
四.WSF-USBISPV3编程器性能
外形尺寸:70mm×45mm。
输入电压:USB DC5V,500mA过流保护。
输出电压:DC5V 500mA和DC3.3V 800mA&两种软件选择电压。
USB通信波特率:115.2kbit。
SPI时钟频率:230.4KHZ。
编程速度:下载65536字节代码(64K Byte)只需18秒钟。
10P排线长度:200mm—300mm为最佳。
五.WSF-USBISPV3编程器接口定义
WSF-USBISPV3&编程器10P接口定义采用官方接口标准定义,如图:
六.WSF-USBISPV3编程器驱动程序安装
1.安装USB驱动程序
编程器在使用之前应当在PC机上安装FT232RL通信芯片的USB驱动程序,否则不能使用。FT232RL通信芯片的USB驱动程序可以从FT232RL通信芯片生产商FTDI官方网下载。官方网提供两种安装方式:硬件向导安装和应用程序包安装。应用程序包的名称是CDMXXXXX_Setup.exe,其中XXXXX是版本号。使用应用程序安装包来安装驱动程序很简单,需要两次用鼠标左键双击CDMXXXXX_Setup.exe应用程序图标,只需几秒钟即可完成安装。硬件向导安装方式也比较简单,先从官方网下载驱动文件,将解压后的文件统一放入一个文件夹,然后选择PC机的一个USB接口插入WSF-USBISPV3编程器,就会跳出“找到新硬件向导对话框”,在对话框里选择“从列表或指定位置安装(高级)”,点击“下一步”按钮,在对话框里点击“浏览”按键,找到您的驱动文件夹,再点击“下一步”按钮,硬件向导便进入USB驱动程序的安装,安装完成后点击“完成”按钮即可。如果您要更新驱动,请使用硬件向导安装方式。
2.确认端口号
驱动程序安装完成后,将WSF-USBISPV3编程器接入PC机的任意一个USB口上,PC机就能识别编程器了。编程器连接的USB接口在PC机上是以虚拟串口存在的。如果PC机是第一次安装驱动程序,编程器插入后默认的端口号是COM3。查看的端口号的方法是:右键点击桌面“我的电脑”—&管理—&设备管理器—&端口,在列表中就能找到编程器连接的端口了,如:USB Serial Port (COM3)。拔出编程器后,端口号就会在列表里消失。使用AT89LPISP软件编程芯片的时候需要选择正确的通信端口方可正常编程。
七.编程操作
入门操作:
在PC机上安装AT89LPISP&软件和FT232RL&芯片驱动软件,用10P排线将WSF-USBISPV3编程器和目标板连接好,用USB电缆将WSF-USBISPV3编程器和PC机连接起来。这时PC机自动安装驱动程序,安装完成之后,在“设备管理器”的“端口”上多了一个虚拟串口,这就是编程用到的端口,记住端口号。
第一步:打开AT89LPISP软件,在“端口”组合框里选择刚才看到的端口号。
第二步:在“芯片”组合框里选择目标板的芯片型号。
第三步:点击一下“读ID/复位”按钮,如果目标板的芯片和连接线没有问题,就可以看到显示正确的ID值(和芯片DATASHEET里列出的ID一致),编程提示栏提示“读ID完成!”如果弹出“编程出错”的对话框,说明目标板的芯片和连接线有问题;如果弹出“编程器没有响应!”的提示,说明端口选择不正确。
第四步:读ID正常的话,就可以进行下一步编程了:加载程序文件(点击“文件”--&“加载程序(FLASH)&HEX文件”--&找到hex文件--&打开),程序代码就会加载到缓冲区,然后点击“写入flash”按钮,程序代码就会逐个字节地写入目标板的单片机里。
程序已经写到单片机里去了,是不是目标板没有反应?原因是还没有配置芯片三态IO口的熔丝位。以AT89LP51XXX为例,先执行“读熔丝配置”,把芯片默认的配置读出来,然后在熔丝配置的0B地址(注意:每种芯片的熔丝地址对应的熔丝功能都不一样)把FF改为00,然后执行“写熔丝配置”,该芯片的IO口就配置为双向IO口了,和普通51单片机的IO口一样。一般普通51单片机的程序(除了涉及内部模块的操作,如串口、定时器等)不用修改任何代码就能直接在LP系列单片机上运行。
熟练操作须知:
(1).写入Flash:这过程自动完成了两个编程操作:先擦除芯片然后再写入Flash程序代码,所以,执行写入Flash编程会导致数据存储区和用户签名区的数据被擦除。应该先执行写入Flash编程,然后再执行写入DATA和写用户签名编程。
(2).擦除:一旦执行擦除编程,芯片的程序存储区、数据存储区和用户签名区(除了最后一页),这些区域里面的数据同时全部擦除!
(3).读出Flash编程:将整个Flash区里的数据全部读出。如果芯片已经加密了读出来的数据全为0xFF。
(4).读ID/复位:把芯片内的Atmel公司的签名读出来,也可以用来复位目标板。
(5).读熔丝配置:将芯片当前的熔丝配置读出来。
(6).写熔丝配置:这是一个比较麻烦的编程操作,切记,不能盲目配置熔丝!写熔丝配置之前,最好抽点时间好好看芯片DATASHEET里的熔丝说明,了解每个熔丝的作用,再来编程,编程的时候一定要慎之又慎,千万千万不要把ISP功能给禁止了,否则你的芯片就作废了!建议操作过程是先执行“读熔丝配置”,把原来的配置读出来,再更改熔丝值,然后执行“写熔丝配置”。大部分芯片熔丝配置写入以后需要给目标板断电再重新上电,新的熔丝配置才生效。记住,芯片加密以后写熔丝配置无效!芯片加密以后如果要改变熔丝配置,只有执行擦除编程或者再次执行写入Flash编程后才能重新配置熔丝(其中某些芯片擦除后还需要断电再上电,才可以重新配置熔丝,如AT89LP428/828)。
(7).加密:这个编程操作很厉害,一定要先执行了写熔丝配置、写入Flash、写入DATA、写签名等编程完成之后,最后再执行加密编程。编程之前也需要先看看芯片DATASHEET里LockBit的编程说明。芯片一旦加密了,读出来的Flash和DATA数据全部为0xFF。而且,除了写入Flash编程,其他的写编程都是无效的。
(8).写入DATA:类似写入Flash编程,但是如果芯片已经加密了,执行写入DATA编程无效。所以,要在执行写入Flash编程之后,在执行加密编程之前执行该编程。
(9).读出DATA:把整个DATA区的数据读出来。如果芯片已经加密了,读出DATA数据全为0xFF。
(10).写用户签名:写签名之前要确保写签名的熔丝位处于使能状态,否则写签名无效。特别注意:用户签名区的最后一页是存放内部RC振荡器的修正数据,芯片出厂时这些数据已经配置好,所以本软件不允许对用户签名区的最后一页编程!所以写签名的时候会发现,软件提示的用户签名空间和芯片DATASHEET里规定的空间大小不一致。在文本框输入你想写入芯片的字符串(用户签名区只允许写入第30号到第126号的常用ASCII字符,没有写入字符的区域保持芯片擦除后的数据0xFF),然后执行写入签名编程就可以了。如果芯片已经加密了,执行写签名编程无效。所以,要在执行写入Flash编程之后执行加密编程之前执行该编程。
(11).读用户签名:直接执行读签名编程就可以了。读出的数据是用户签名区最后一页之前的数据,而且数据也是做了过滤处理,只有第30号到第126号的常用ASCII字符才能显示。
(12).其他编程:太简单了,略。
八.使用注意和问题处理
1.编程器支持热拔插,在连接PC机的USB接口后,三个指示灯常亮1.5秒后,通信指示灯和编程指示灯熄灭。如果连接PC机的USB接口后指示灯不亮或,请反复拔插测试,如果不起作用说明PC机的USB接口损坏或编程器损坏,根据具体情况处理。正常编程时三个指示灯均亮,编程结束通信指示灯和编程指示灯熄灭。& &
2.编程器正在编程时,如果突然人为中断(如拔出10P排线),编程器就会进入等待信号的死循环,此时需要拔出编程器,然后再次连接,让编程器复位,还要在下载软件上重新选择通讯端口,否则编程时下载软件会报错。
3.正在编程的时候,请不要触碰、移动编程器和目标板,以免连线松动造成通信数据出错。
4.提示编程出错的原因:
这是目标板的硬件问题,包括芯片型号不符、芯片损坏、芯片ISP连接电路错误、ISP电缆未连接目标板、目标板没有供电、芯片ISP功能已被禁止、芯片时钟源为外部时钟但又未提供外部时钟等,视情况处理。
5.提示编程器没有响应原因:
(1).端口选择不正确,请重新选择端口。
(2).&编程器因前次编程中断而进入等待上位机信号的死循环。重新拔插编程器的USB接口,让编程器复位,然后在软件上重新选择端口即可。
6.端口选择正确,但还提示端口不存在或被占用的原因:
USB接口接触不良。重新拔插编程器的USB接口,然后在软件上重新选择端口即可。
7.软件死机原因:
因芯片损坏或人为中断下载,软件进入等待编程器信号的死循环。这种情况下需要在任务管理器结束进程才能退出软件。退出软件后还要重新拔插编程器的USB接口,让编程器复位,才能继续编程。
九.AT89LPISP软件的安装和使用
太简单了,略。
十.单片机编程电路和最小系统电路示例
1.AT89S系列单片机:
AT89S系列单片机均为高电平复位,WSF-USBISPV3编程器的SS引脚悬空不用。下面以AT89S51/52单片机为例,S系列的其他单片机请参照这个电路设计。
2.AT89LP单片机:
AT89LP系列单片机为高电平复位。芯片具有上电自动复位和掉电自动复位功能,无需外部复位电路。
3.AT89LP213/214/216/428/828/单片机:
AT89LP213/214/216/428/828/单片机为低电平复位。芯片具有上电自动复位和掉电自动复位功能,无需外部复位电路。下面以AT89LP单片机为例,其他单片机请参照这个电路设计。
注意:AT89LP芯片,工作电压范围是2.4-3.6V,所以,只能使用3.3V编程电压。
4.AT89LP51/51RB2/51RC2/51IC2/51RD2/51ED2/51ID2单片机:
AT89LP51/51RB2/51RC2/51IC2/51RD2/51ED2/51ID2单片机既可以配置为高电平复位也可以配置为低电平复位,通过POL管脚来设定:当POL接VCC时,为高电平复位;当POL接GND时,为低电平复位。芯片具有上电自动复位和掉电自动复位功能,无需外部复位电路。
& & & & & &
匿名不能发帖!请先 [
Copyright (C) 《电子产品世界》杂志社 版权所有

我要回帖

更多关于 8255芯片的端口为 的文章

 

随机推荐