基于ENC28J60的以太网通信设计与实现
3.2.2 单片机串口结构
(1)单片机的串行接口是一个全双工通信接口,即能同时进行发送和接收。其帧格式和波特率可通过软件编程设置,在使用上非常方便灵活。串行口主要由两个数据缓冲器SBUF、一个输入移位寄存器、一个串行控制寄存器SCON和一个波特率发生器T1等组成。
(2)串行通信过程
在接收数据过程中进行通信时,当CPU允许接收时(即SCON的REN为1时),外界数据通过引脚RXD串行输入,数据的最低位首先进入移位器,一帧接收完毕再并行送入缓冲器SBUF中,同时将接收中断标志位RI置位,向CPU发出中断请求。CPU响应中断后,并用软件将RI位清除同时读走输入的数据。接着又开始下一帧的输入过程。重复直至所有数据接收完毕。
在发送数据过程中进行通信时,当CPU要发送数据时,将数据并行写入发送缓存器SBUF中,同时启动数据由TXD引脚串行发送,当一帧数据发送完既发送缓冲器空时,由硬件自动将发送中断标志位TI置位,向CPU发出中断请求。CPU响应中断后,用软件将TI位清除,同时又将下一帧数据写入SBUF中,重复上述过程,直至所有数据发送完毕。 3.2.3 串行口工作方式及帧格式
单片机串行口可以通过软件设置四种工作方式: (1)方式0
这种工作方式比较特殊,与常见的微型计算机的串行口不同,它又叫同步移位寄存器输出方式。在这种方式下,数据从RXD端串行输出或输入,同步信号从TXD端输出,波特率固定不变:为震荡频率的1/12。该方式是以8位数据为一帧,没有起始位和停止位,先发送或接收最低位。
(2)方式1
串行口采用该方式时,特别适合于点对点的异步通信。该方式规定发送或接收一个字符10位为一帧,即一个起始位,8个数据位,一个停止位,波特率可以改变。
(3)方式2
采用这种方式可以接收或发送11 位数据,以11 位为一帧,比方式1 增加了一个数据位,其余相同。第9 个数据即D8 位具有特别的用途,可以通过软件来控制它,再加特殊功能寄存器SCON 中的SM2 位的配合,可使单片机适用于多机通信。方式2 波特率固定,只有两种选择:为振荡频率的1/32 或1/64,由PCON 最高位选择。
- 15 -
济源职业技术学院毕业设计(论文)
(4)方式3
方式3 与方式2 完全类似,唯一的区别是方式3 波特率可变,所以适用于多机通信。
3.2.4 单片机与串口的通信
由于串口用的是TTL电平,和RS-232电平不同,因此,单片机和PC通信时需要进行电平转换,常用的IC是MAX232,其中MAX232供电脚为+5V。采用了三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线。第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说足够使用了。RS-232引脚图如图3-4所示。
图3-4 RS-232串口(母口)
RS-232的标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是:2个数据信号,发送信号TXD、接收信号RXD;1个信号地线SG;6个控制信号,DSR、DTR、RTS、CTS、DCD。
当通信距离较近时,通信双方可以直接连接,这种情况下,只需使用少数几根信号线。最简单的情况,在通信中根本不需要RS-232的控制联络信号,只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。在这种方式下,通信双方的任何一方,只要请求发送RTS有效和数据终端准备好DTR有效就能开始发送和接收。
图3-5是RS-232最简单的连接方法(即三线连接),图中的2号线与3号线交叉连接是因为在直连方式时,把通信双方都当作数据终端设备看待,双方都可发也可收,发送信号线接接收信号线、接收信号线接发送信号线、5号线同时接地。在这种方式下,通信双方的任何一方,只要请求发送RTS有效和数据终端准备好DTR有效就能开始发送和接收。
- 16 -
基于ENC28J60的以太网通信设计与实现
图3-5 三线连接
3.2.5 单片机串口通信设置
在系统中,单片机一般称为下位机,通常用来完成数据的采集和上传,由PC机、网络设备、数据库服务器组成的后台应用部分则称为上位机,对下位机的上传数据进行分析并处理。系统充分发挥了单片机在实时数据采集和微机对数据处理显示以及单片机串行口工作方式选择、中断标志、可编程位的设置、波特率的倍增均是通过两个特殊功能寄存器SCON和PCON来控制的。
在串口通信模块中,波特率在程序初始化时定义为9600b/s。
波特率的产生用定时器产生,在设置时选择定时器1,并将它设为工作方式2,8位的常数自动重新装载的定时器,这种工作方式可以省去用户软件中重装初值的程序,简化定时初值的计算方法,可以相当精确的确定定时时间。计算出定时器的初值之后,在设定串行口的工作方式,在这里令SCON=0X50,即SCON各位中,SM0=0,SM1=1,REN=1,其他控制字为0,选择为工作方式1,8位一步收发。令TCON中的TR1=1,启动定时器,并禁止其他中断。
3.3 ENC28J60外围电路
ENC28J60的硬件设计需要注意时钟振荡器、复位电路、变压器、接口电路、终端和其他外部器件,输入/输出电平等几个方面事项,下面分别介绍这些需注意的事项。
(1)时钟振荡器
硬件设计中发现ENC28J60芯片需要一个接在OSC1和OSC2脚上的25MHz的晶振;这个晶振也可由外部时钟信号来完成如图3-6所示。
- 17 -
济源职业技术学院毕业设计(论文)
+3.3VL14.7uF0.1uFGNDVCC8C1C2+3.3VOSC5U1474HC1G14R21001NCCLK5C333pF30MR110024 图3-6 时钟振荡器电路
(2)复位电路
ENC28J60芯片上的电复位功能,引脚RESET上的低电平可以使该芯片进入复位模式;并且引脚RESET内部有弱上拉电阻,同时DSP的复位信号也会使ENC28J60芯片复位。
(3)接口电路
ENC28J60芯片工作电压为3.3 V,该芯片易于被设计为集成到5 V的系统中。此外该芯片可以通过SPI和微控制器连接;对于没有SPI接口的微控制器,我们也可以设计通过I/O 口模拟SPI的方法实现。
如果主控制器运行在5 V电压下,当SPI和中断输入由ENC28J60芯片上的3.3 V CMOS输出驱动时我们就需要有一个单向电平转换器。只有将ENC28J60芯片和主控芯片AT89S52结合,这两者之间的接口设计是一个关键。
- 18 -
3

