admin 管理员组文章数量: 1087139
2024年4月30日发(作者:jfinal框架定义接口)
维普资讯
经验交流
■■
单片机的ISP在线编程设计
一九江学院 严青 屈晓-T-
引 言
随着电子技术的日益发展,芯片的规模越来越大,封
装日趋小型化,相应地对系统板级调试的困难也在加大。
1.2并行口编程简介
Windows对系统底层操作采取了屏蔽的策略,但是
在硬件或系统软件开发中只要涉及系统底层的操作,就不
得不深人到Windows的内核去编写属于系统级的设备驱
在传统的调试方式中,频繁的调试和更换程序需要频繁地
插拔芯片,开发效率极低。AT89S系列单片机提供的ISP
在线编程技术彻底地改变了传统的开发模式,开发单片机
动程序。对并行口的读/写操作就是如此。为了绕过
Windows安全保护机制,需要允许32位Windows程序直
接对I/O口进行操作。这里使用由Yariv Kaplan编写的
系统时不会损坏芯片的引脚,加速了产品的上市并降低了
研发成本,缩短了从设计、制造到现场调试的时间,简化了
生产流程,大大提高了工作效率,因此它是对市场定型产
品进行现场升级和维护的经济、有效的方式,极大地促进
了PLD产品的发展。
WinIo库中的几个函数来实现对I/O口的读/写。
(1)初始化与终止
对端口读/写前后要分别初始化和终止。
InitializeWinlo();
ShutdownWinlo();
1 PC机并行口
1.1 并行口硬件接口简介
标准并行口有25个引脚,其中数据端口引脚为2~
9,状态端口引脚为15、10~ ,。 ,
(2)安装与卸载
如果操作系统是Windows98或Windows95,则需要
调用驱动函数。
InstallWinIoDriver(PSTR pszWinloDriverPath,bool
IsDemandLoaded—false);
RemoveWinloDriver();
13,控制端口引脚1、14、16、\O O O O O O O O O O O O O/
17用于连接器件,其他引脚
25针并行口如图I所示。
『__———————
(3)读/写i/o口
GetPortVal(WORD wPortAddr,PDWORD pdw—
PortVal,BYTE bSize);
SetPortVal(W0RD wPortAddr,DW0RD dw—
PortVal,BYTE bSize);
: 7. 引 N 图1 25针并行口
。
并行口工作在SPP模式下,PC机是通过对3个8位
端口寄存器的读或写来实现对它们的控制。端口寄存器
分别是:
◆数据端口(地址0x378)为D7~DO,对应引脚P9
~
GetPortVal函数从指定端口读取一个BYTE/
WORD/DWORD类型的值;SetPortVal函数向指定端口
写入一个BYTE/WORD/DWORD类型的值;wPortAddr
P2:
◆状态端口(地址0x379)为S7~S3,对应引脚P11、
P10、P12、P13、P15;
是指定一个端口地址值;pdwPortVal为指向一双字节型
变量的指针,该变量存储从wPortAddr端口读取的值;
dwPortVal为一双字节型变量写到wPortAddr端口中;
◆控制端口(地址0x37A)为C3 ̄CO,对应引脚P17、
P16、P14、P1。
bSize指定读取字节数,值可以为1、2或4。
注意:S7、CO、C1、C3信号的逻辑状态在连接器处是
与相应寄存器位相反的。对这些位进行写操作时,写入的
值应该与连接器处设置的值相反;同样,进行读操作时,读
2 AT89S5X系列单片机
2.1 AT89S51简介
AT89S51是一个低功耗、高性能CMOS 8位单片机,
取的值也与连接器处设置的值相反。
paper@mesnet.conr.on(投稿专用) Micr。controllers&Embedded systems 6 5
维普资讯
腿
片内含4 KB ISP(In—System Programming)的可反复擦
写1 000次的Flash只读程序存储器。该器件采用Atmel
公司的高密度、非易失性存储技术制造,兼容标准MCS一
51指令系统及8OC51引脚结构,芯片内集成了通用8位
中央处理器和ISP Flash存储单元。功能强大的
O-- 14
O- 2
O--- 3
、_
,
OO- 豆
—
O
O-
o—
4
\ 一
- -W
18
O- 6
AT89S51可为许多嵌入式控制应用系统提供高性价比的
解决方案。
O--- l9
O- 7
o— 上
O- jL
O--- 2l
O—
工作
指示灯
2.2 AT89S51串行编程时序及指令
2.2.1 串行编程模式下的时序分析
RST
SCK
:0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
:0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
X X X X X X X X 1
O- 9
22
O- J
O---- 23
c>_ ll
0一
O
-
且
l2
V 2S ((}NDI
\D_ DB25(并行口
并行
口
图2 AT89S52下载线电路图
MOSI:
MISO: X X X X X X X X X
2.2.2串行编程指令
串行编程使用4字节协议,指令如表1所列。
表1 串行编程指令
指令
字节1 字节2
0
101
011
0
4 ISP下载线的软件设计
在硬件设计的基础上,通过对ISP时序和
操
字节4
X XXX
XXX
X
指
令格 式
字节3
作
串行编程指令的分析,采用Visual C++6.0
编写了下载线程序。其主要关键编程函数
当RST=…
H
时,
编 程使能1 010
1 100
X XXXX
XXX
O 1101001(
输出)
打开串 口编程
略——编者注。
芯
片擦除
010
1
1 100
O
O1O
1
00x
X XXX
X XXX
X XXXX XXXX XXX
擦除Flash 存储 器
阵列
字节方式读 存储 器
数据
结 语
以下是作者在调试中获取的一些参数,
读数据
(字节
模式)
X XXX
A7A6A 5A4
A3A2A 1A0
A7A6A 5A4
A3A2A
1A0
D7D6D 5D4
D3D2 D1
0 000
A11A10A 9A8
0
100
000
0
XXXX
A11
写数据
(字节 模式)
写
加密位
D7D6D
5D4
1DO
D3D2D
字节方式向
存储器
写
入数据
写
加密位
希望对大家有所帮助。
参考资料:
A10A
9A8
1
1001O10 11000B 1B2
1
X XXXX XXX
晶体振荡器的频率为33 MHz(MAX),
所以周期T一1/F一1/33 MHz一30 ns
(MIN);SCK正脉冲宽度为8 x 30 ns一240
加密位
读
读签
名
字节
0 010
0 100
0
010
X
XXX
X XX X
X XXXX
XXX
LB3
XXX
LB2LB
1
XX
读
加密位
读签
名字节
A7 XXXX XXX签 名字节
1
000
A11A1OA 9A8
0
010
X XXX
ns(MIN);SCK负脉冲宽度为8x 30 ns一240
ns(MIN);MOSI建立到SCK变高时间为30
读数据
(页
模式)
写数据
(页
模式)
字节0
1
000
A11A1OA 9A8
0
101
X
XXX
字 节1~
255
字节
字
节1~
255
字节.
页面方式读
存储 器
数据
页面方式向 存储器
写
ns(MIN);SCK变高后MOSI保持时间为2
x 30 ns(MIN);SCK变低到MISO有效时间
为10 ns(MIN)~32 ns(MAX)(一般取16
字节0
0 000
Al1A10A 9A8
ns);芯片檫除指令周期为500 ms;串行字节
3并行口与AT89S5X单片机的硬件设计
通过对并行口和编程时序的分析,我们制作了
AT89S5X单片机的ISP下载线。下面对并行口与单片机
的连线作一简单介绍:并行口P2引脚连接单片机的P1.5
引脚(MOSI);并行口P10引脚连接单片机的P1.6引脚
(MISO);并行口P1引脚连接单片机的P1.7引脚(SCK);
写周期为64x 30 ns+400 ns。
实验数据:
晶体震荡器的频率为33 MHz(MAX),所以周期T一
1/F=1/33 MHz=30 ns(MIN);芯片擦除指令周期为200
ms;SCK变高后MOSI保持时间为1 ms(MIN)。
编者注:本文为期刊缩略版,全文见本刊网站www.
并行口P17引脚连接单片机的RST引脚,如图2所示。
mesnet.corn.cn。-E
66 《车I;;缸 入主:鑫0刍阁)) ……… ,i.f-&士田、
维普资讯
- -。
经验交流
《鼍誊强
同步队列串行接口QS P I的研究与应用
■电子科技大学 王晗 李F-军 郭志勇
MCU同外部设备的数据传输有两种方式,一种是并
行数据传输方式,另一种是串行数据传输方式。串行数据
传输方式信号线少,协议简单,在长距离、低速率的传输中
得到广泛应用,常用的有SPI、I C、UART等串行数据传
输协议。其中,SPI协议为Motorola公司推出的同步串行
外围接口协议,Motorola公司的低端MCU上基本都集成
了SPI模块。在SPI协议的基础上,Motorola公司对其功
能进行了增强,增加了队列传输机制,推出了队列串行外
围接口协议(即QSPI协议)。使用该接口,用户可以一次
内
部
墨 熟H。睥 一
QSPI_DIN
队列控制块
性传输包含多达16个8位或16位数据的传输队列。一
总
线
I一8/16位移位L
导‘_J Il l童壹整J面
l I墼塑童查整l
QSPI_DOUT
4 QSPI 】
旦传输启动,直到传输结束都无需CPU干预,极大地提高
了传输效率。该协议在随后推出的ColdFire系列MCU
中得到广泛应用。
总线时钟—( 卜 噩亘翌垂亘篁 墅:
图1 QSPI模块的结构框图
1 QSPl工作原理
QSPI模块的结构如图1所示。与SPI相比,QSPI结
构最大的特点是以8O字节的RAM取代了SPI的发送和
接收数据寄存器。8O字节的RAM分成3部分:16字的
发送RAM,16字的接收RAM和16字节的命令RAM。
在QSPI模块的QWR寄存器中,NEWQP和ENDQP
域分别决定了传输队列的起始点和结束点。起始点和结
束点可以是16个QSPI
传输控制组的任意一个。
当QSPI传输启动时,
QSPI模块将从起始点开
始依次发送准备好的数
这3部分形成了具有16个QSPI传输控制组的传输队列,
每个QSPI传输控制组由1个命令RAM、1个发送RAM
和1个接收RAM组成。每个QSPI传输的数据长度、片
选等信息可由该QSPI传输控制组的命令RAM单独
决定 。
I QP-=NEWQP
●一
l
l
传输QP指向的数据 l QP=QP+1
据直到结束点,整个过程
无需CPU干预。典型的
由于SP1只有1个8位的发送数据寄存器,所以CPU
每次最多只能准备一个字节的待发送数据。而QSPI拥
有具有16个QSPI传输控制组的传输队列,所以CPU每
次最多可以准备16个待传输的数据,并且可以通过命令
RAM设置每个待传输数据的长度。
QSPI传输流程如图2所
示,其中QP为传输队列
指针,指向即将传输的
数据。
社,2005.
图2典型的QSPI传输流程
参考文献
[1]王沫楠,等.单片机原理及应用[M1.北京:中国计量出版
社,2007.
E3]李朝青.单片机原理及接LI技术EM].北京:北京航空航天
大学出版社,2005.
E43 Atmel公司.AT89S5X系列单片机数据手册,2005—03.
(收修改稿日期:2007-12-29)
E2]曹克澄.单片机原理及应用[M1.北京:机械工业出版
paper@mesnet.corn.cn(投稿专用) Micr。c。ntr。11ers&Embedded Systems 6 7
版权声明:本文标题:单片机的ISP在线编程设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1714465993a681385.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论