利用PIC单片机串口模块实现SPI及I2C总线通信.doc

上传人:doc321 文档编号:14613760 上传时间:2022-02-10 格式:DOC 页数:6 大小:201.50KB
返回 下载 相关 举报
利用PIC单片机串口模块实现SPI及I2C总线通信.doc_第1页
第1页 / 共6页
利用PIC单片机串口模块实现SPI及I2C总线通信.doc_第2页
第2页 / 共6页
利用PIC单片机串口模块实现SPI及I2C总线通信.doc_第3页
第3页 / 共6页
利用PIC单片机串口模块实现SPI及I2C总线通信.doc_第4页
第4页 / 共6页
利用PIC单片机串口模块实现SPI及I2C总线通信.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《利用PIC单片机串口模块实现SPI及I2C总线通信.doc》由会员分享,可在线阅读,更多相关《利用PIC单片机串口模块实现SPI及I2C总线通信.doc(6页珍藏版)》请在三一文库上搜索。

1、利用PIC单片机串口模块实现SPI及I2C总线通信黄亚中国矿业大学信息与电气工程学院,江苏徐州(221008)E-mail : huangya1210摘 要:本文介绍如何利用 PIC单片机的USART模块模拟实现SPI和I2C总线通信。其中 SPI总线通信实现过程较为简单,本文只给予扼要介绍,对于用USART模块来实现I2C总线通信是本文的重点,除了介绍实现的方法外,还给出了具体实例。关键词:串口,SPI总线,I2C总线1. 引言在现代的电子电路设计中SPI和I2C两种串行总线应用越来越广泛,对于硬件上不支持这两种总线的单片机(如AT89C51 )来说,要想实现这两种总线与电路中其它芯片的通信

2、往往采取软件模拟的办法来实现。对于PIC系列单片机来说,由于片上的串口模块支持同步通信,利用这个功能实现SPI和I2C总线通信会变得更加容易。本文用到的单片机为PIC16F6902,当其片上的 USART模块工作在同步通信主模式时通过适当的软件编程即可 实现SPI和I2C方式通信。I2C和SPI通信都是高位数据先传送,而USART模块的通信方式与之相反,所以在数据传送时需调整。为便于理解,本文用到了 SPI接口芯片MCP32023和I2C接口芯片AT24C04,下面分别予以阐述。2. MCP3202和AT24C04介绍以及操作时序MCP3202是12位分辨率的A/D转换芯片,采用 SPI总线接

3、口与单片机通信。图1是该芯片管脚图,共有两个模拟信号输入通道。2和3管脚分别是模拟输入通道 0和1,而5和6管脚分别是数据输入和数据输出管脚,7管脚是时钟输入管脚,4管脚为接地端,1管脚是片选(CS)低电平有效,图 3为MCP3202操作时序图。当在 DI引脚上出现起始位1时, A/D转换即开始,紧接着在 DI引脚上输入的3位是控制命令:SGL/DIFF为单端/差分输入 选择。第二位是通道选择,MSBF为数据输出高位/低位在先格式选择,当控制位输入全部结束后,下一个时钟到来时 A/D输出结果从DOUT管脚输出,其中第一个数据为引导位0,往后的12位数据才是A/D转换的结果。图1 MCP3202

4、管脚图图2 A T24C04管脚图-1 -B国龜菽讲袞在续CLK LTI !Diy 汕JiMD0KI誤图3 MCP3202操作时序图AT24C04是一个EEPROM存储芯片容量为 4Kbit采用I2C总线与控制芯片相连。图2是该芯片管脚图,其中 A2,A1和A0管脚为芯片地址选择引脚,其中A0未用到而是作为片内地址选择,7管脚WP为硬件写保护,5和6管脚分别是串口通信的数据和时钟线,通 过上拉电阻分别与单片机的数据和时钟线连接即可。43. SPI和I2C方式通信的具体实现3.1利用USART模块模拟SPI时序实现与MCP3202的通信由图3知MCP3202数据输出管脚在 A/D转换完成前为高阻

5、态, 而转换完成后其输入引 脚可为任意数据,故单片机对MCP3202的操作可以看作是半双工通信,在硬件电路上只需将MCP3202的5和6管脚短接并与单片机 USART模块的数据管脚相连,两者的时钟管脚 再相连即可。MCP3202在接收数据时,5管脚的输入数据应在时钟下降沿准备好,在时钟 上升沿输入芯片内部,MCP32023在完成A/D转换时,转换的结果在时钟的下降沿出现在 数据输出管脚,在接着的时钟上升沿数据送入单片机3,从以上分析并结合 USART模块的数据传送时序可知当单片机发送起始位及命令时只要USART工作在同步通信主模式的数据发送方式即可,命令发送完成后将 USART模块工作方式改为

6、数据接收方式,从而将A/D转换结果读入单片机。程序上实现很简单,故在此省略。下面着重介绍如何实现I2C方式的通 信。3.2利用USART模块模拟I2C时序实现与AT24C04的通信当USART工作在同步通信主模式方式下,硬件电路实现如图 4所示,AT24C04字节写操作时序如图5所示。(!SCLmm-2 -B国龜菽讲袞在续图4 PIC16F690 与AT24C04的硬件接口电路-# -rnKifif持2b杠坯-3 -# -起始位的产生:由于或门的原因,只要使单片机的 RC0引脚输出置1从而使AT24C04的时钟输入端为高电平,此时单片机只要发送数据0x7F (发送的数据已经调整)即可实现起始信

7、号的产生。发送数据: 此时使RC0引脚输出低电平,确保 AT24C04的时钟输入管脚能够接收到 正常的时钟信号,单片机的BAUDCTL寄存器的SCKP位置1这样就能保证发送的时序符合AT24C04的通信时序。注意在发送数据前应将数据进行调整以保证 AT24C04能够接收到 正确的地址或数据信息。接收数据: 此时使RC0引脚输出低电平并清零 BAUDCTL寄存器的SCKP位,同时 对接收的数据应进行调整,以确保单片机收到正确数据。应答位的接收与产生:无论接收或发送应答信号,都应暂时禁止USART功能,用软件模拟实现。停止位的产生:首先置位RC0引脚使AT24C04的时钟输入端为高电平,然后单片机

8、只要发送数据0x80即可实现停止信号的产生。4. 利用USART模块实现I2C通信程序设计限于篇幅所限以下只给出用字节写方式写入AT24C04 一个字节数据的程序。对于其它操作方式如读取单字节或连续写入多字节数据程序稍微改动就可实现。以下程序实现的功能是向AT24C04中以0x04为地址的单元中写入数据 0xaa。startban ksel portc bsf portc,0 movlw 0x7fmovwf txreg returnstopban ksel portc bsf portc,0 movlw 0x80movwf txreg returnwritebyte;起始位产生程序;停止位产生

9、程序;字节写子程序-# -movwf txreg ban kslel txsta bsf txsta,txe n-# -rn同刖持2b存强btfss txsta,trmt goto $-1 returnackban ksel rcsta bcf rcsta,7 ban sel trisbbcf trisb,7ban kselportbbsf portb,7 nop nop btfsc portb,5 goto err returnerrmai ncall usart in itialcall start ban ksel portc bcfportc,0movlw0x05call writeb

10、yteban kselbaudctlbcf baudctl ,sckp call ackcallusart in itialmovlw 0x20 call writebyte ban kselbaudctlbcf baudctl,sckpcall ack;通过查询trmt标志位的状态判断发送是否结束;接收应答子程序;未接受到应答信号错误处理略;调用USART模块初始化程序略;发送器件地址和写操作命令OxaO,注意数据已经调整;调用字节写子程序;当串口功能重新使能时应进行初始化;发送字地址04h,注意数据同样进行了调整callcall usart in itial movlw 0x55 call

11、 writebyte ban ksel baudctl bcf baudctl ,sckp call ack usart in itial;发送数据Oaah,由于USART低位数据先发,数据调整为0x55call stop goto $ end-5 -5. 结论对于没有SPI和I2C总线硬接口的单片机来说,实现这两种方式的通信,一般都是采取 软件模拟的办法实现,而本文则给出一新方法:即通过USART模块实现。对于PIC单片机来说其片上的USART模块具有同步通信功能,通过适当编程即可简单实现SPI和I2C总线通信。以上程序在实验中已调试通过,希望能给读者一些启发。参考文献1 张明峰.PIC单片

12、机入门与实战M.北京:北京航空航天大学出版社,2004.2 Microchip Technology lnc.PIC16F690 Date SheetDB/OL. .2006.3 Microchip Technology lnc.MCP3202 Date SheetDB/OL. .2006.4 Atmel Corporation.A T24C04 Data SheetDB/OL.http: .2007 .Using serial port of PIC microcontroller to Implement SPIand I2C bus communicationsHuang YaIn fo

13、rmation and Electrical En gi neeri ng ,CUMT, Xuzhou,Jia ngsu (221008)AbstractThis paper in troduces how to use USART module of PIC microc on troller to achive SPI bus and I2C bus communications.Achiving SPI bus communication is simple ,so the introduction about it is to the point.The simulation of I2C is illuminated mostly 。Except the material method ,the paper gives concrete example. Keywords : Serial port, SPI bus, I2C bus-6 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1