现代电子系统课程设计.docx
- 文档编号:23874537
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:10
- 大小:130.16KB
现代电子系统课程设计.docx
《现代电子系统课程设计.docx》由会员分享,可在线阅读,更多相关《现代电子系统课程设计.docx(10页珍藏版)》请在冰豆网上搜索。
现代电子系统课程设计
辽宁工程技术大学
现代电子系统设计课程设计报告
题目SPI总线研究
指导教师白立春
院(系、部)电信学院
专业班级
学号
姓名
日期2013年6月7日
一、摘要
单片机本身的数据传输接口过去主要为8位并行数据接口或异步串行通信接口,但电子技术的迅速发展使得许多新的数据传输接口标准不断涌现,大多数的51单片机并没有在硬件中集成这些新的数据传输接口。
随着单片机应用技术的发展,单片机的应用模式也在不断变化,一方面,单片机系统的规模越来越大,其外未连接了种类繁多的外设;一方面,单片机进入了计算机网络系统,工业控制系统多采用多机分布式系统。
同时单片机的嵌入式系统应用模式使其体积越来越小且器件数目越来越少。
近年来,串行接口设备凭借其控制灵活,接口简单、占用资源少等优点在工业控制、仪器仪表等领域被广泛应用。
这些发展趋势更加使得串行通信功能加强了,同时带有串行接口器件也被广泛使用。
本课题就是对不同总线方式进行研究,并选取带有一种总线接口的器件进行系统设计。
对于现在的嵌入式系统而言并行接口占用CPU资源太多,然而串行接口设备凭借其控制灵活,接口简单、占用资源少等优点在工业控制、仪器仪表等领域被广泛应用。
目前并行接口芯片已经不常使用,各厂家研究各种串行总线方式,并生产出带有各种总线方式接口的芯片,方便了系统集成设计,节省了资源。
进而串行总线已成为了发展趋势。
二、综述
SPI(SerialPeripheralInterface),是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,它是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。
SPI接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS决定了唯一的与主设备通信的从设备,如没有CS信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。
通讯时,数据由SDO输出,SDI输入,数据在时钟的上升或下降沿由SDO输出,在紧接着的下降或上升沿由SDI读入,这样经过8/16次时钟的改变,完成8/16位数据的传输。
要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。
同样,在一个基于SPI的设备中,至少有一个主控设备。
这样传输的特点:
这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。
也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。
SPI还是一个数据交换协议:
因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。
SPI总线是由Motorola公司提出的一种同步串行外围接口,采用三或四根信号线。
它包括1根串行同步时钟信号线以及2根数据线。
SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。
如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。
时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。
如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。
SPI主模块和与之通信的外设音时钟相位和极性应该一致。
三、方案设计与分析
1、RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。
该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
随着设备的不断改进,出现了代替DB25的DB9接口,现在都把RS232接口叫做DB9。
RS-232是现在主流的串行通信接口之一。
由于RS232接口标准出现较早,难免有不足之处,主要有以下四点:
接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
传输速率较低,在异步传输时,波特率为20Kbps;因此在“南方的老树51CPLD开发板”中,综合程序波特率只能采用19200,也是这个原因。
接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。
2、II2C总线是Philips公司开发的总线方式,是一个半双工、多主总线,该总线网络有一个或几个主控器件和很多个从器件。
信息由两条串行线传输:
串行数据线(SDA)和串行时钟线(SCL)。
图1显示了使用两个主控和三个从器件相连接的例子。
网络中的每一个器件都预指定一个7位或10位的地址。
飞利浦会给器件制造商分配地址,也有一个特定的地址用于高速通信,以及一个通用呼叫地址用于与网络中所有器件的通信。
10位寻址的优点是允许更多的器件(高达1024个)布置在网络中。
然而,总线中器件的数目取决于总线的电容量,必须限制在400pF以内。
主控器件发起数据传送,并提供用于通信的时钟信号。
通信开始于SCL为高电平时SDA由高到低的转换,紧接着是一个7位或10位的从地址,一个数据方向位(R/W),一个应答位和停止状态。
停止状态定义为在时钟信号为高时数据线电平由低到高的转换。
每一个数据字节长度为8位,单次传送的字节数并没有限制。
由于I2C是一个多主总线,因此可能有两个或更多的主控器件同时试图访问总线,在时钟信号为高电平时在总线上置“1”的主控器件赢得总线仲裁。
I2C有三种不同的运行模式:
标准、快速和高速模式。
在使用快速和高速模式时,可能某个从属器件不能像主控器件那么快地处理数据。
此时,从属器件会将SCL线拉至低电平来保持总线,这迫使主控器件进入等待状态,直至从属器件准备就绪。
数据方向和通信速度,数据传输首先从最高位开始。
I2C总线设计用于三种数据传输速度,每个都向下兼容性:
低速,数据传输率为0到100kbps;快速,数据传输率可以高达400kbps;高速,数据传输率可以高达3.4Mbps。
3、wire单总线是Maxim全资子公司Dallas的一项专有技术与目前多数标准串行数据的通信方式,如SPI/IC/MICROWIRE不同它采用单根信号线既传输时钟又传输数据而且数据传输是双向的它具有节省I/O口线资源结构简单成本低廉便于总线扩展和维护等诸多优点,I-wire单总线适用于单个主机系统能够控制一个或多个从机设备,当只有一个从机位于总线上时,系统可按照单节点系统操作,而当多个从机位于总线上时,则系统按照多节点系统操作,为了较为全面地介绍单总线系统,将系统分为三个部分讨论:
硬件结构、命令序列和信号方式信号类型和时序。
4、MicroWire总线是国家半导体开发的一种三线串行接口总线。
一为数据输出线,二为数据输入线,三为时钟线。
线上只有一台机为主机,其余为从机。
MicroWire/plus是增强型。
各型号功能各异。
5、CAN控制器区域网络是一个多主异步串行总线。
由于它具有优良的错误处理机制以及可靠的数据传送性能,该总线在汽车得到普及。
CAN最初由德国的RobertBosch公司开发,提供给汽车电子系统所用的低成本通信总线,现在已经成为国际标准,被采用为高速应用的ISO11898标准和用于低当总线空闲时,任何CAN节点都可以开始数据发送。
如果两个或更多的节点同时开始发送,就使用标识符来进行按位仲裁以解决访问冲突。
CAN是一个广播类型的总线,所有节点都接收总线上的数据,硬件上的过滤机制决定消息是否提供给该接点用。
五种消息帧的类型:
数据帧:
该帧从一个发送器承载数据到一个接收器。
根据CAN规范有两种数据帧格式,它们的唯一本质区别在于标识符的长度。
CAN标准帧,也称为CAN2.0A,支持11位长度的标识符;另一个是CAN扩展帧,也称为CAN2.0B,支持29位长度的标识符。
显示了两种规范的CAN数据帧。
远程帧:
此帧由一个接收CAN节点发送,用来请求带有远程帧中规定的标识符的数据帧。
错误帧:
此帧将任何总线错误通知其它单元,在接收到这个帧时发送器会自动进行消息重发。
超载帧:
超载帧由一个忙的CAN节点送出,以请求在前后数据帧之间增加一个额外的延迟。
CAN硬件术语是基本CAN(BasicCAN)控制器:
这是一种廉价的CAN控制器,具有有限的发送/接收消息缓冲器,以及有限的CAN消息过滤机制。
完全CAN(FullCAN)控制器:
完全CAN是一个高成本、高性能的CAN控制器,具有能缓冲8个或更多消息的缓冲器用于接收和发送。
例如,富士通的集成CAN微控速应用的ISO11519标准。
CAN通信制器能提供16个消息缓冲器用于接收和发送。
此外,富士通的MB90443微控制器能灵活地将两个CAN控制器的消息缓冲器组合在一个中,以形成能缓冲32个消息的缓冲器。
标准CAN控制器:
该CAN控制器能够处理仅有11位标识符的消息。
四、方案综合评价与结论
SPI总线接口一般用于主从分布式的通信网络【1】,在SPI传输时,数据由MOSI输出,MISO输入,数据在时钟的上升或下降沿由MOSI输出,在紧接着的下降或上升沿由MOSI读入,这样经过8/16次时钟的改变,完成8/16位数据的传输,即完成了一次SPI时序。
SPI总线使用的最为广泛的是SPI0和SPI3方式【2】,同时SPI是一个环形总线结构【3】,主要是在主机的时钟控制下,两个双向移位寄存器进行数据交换。
本文正是采用了这种环形结构,设计了16位寄存器,在16次时钟变换后,主机与从机数据得以交换。
1、m序列
m序列是最长线性反馈移位寄存器序列的简称【4】,m序列码的主要特点为:
每个周期中,“1”码出现2n-1次,“0”码出现2n-1次,即0、1出现概率几乎相等;序列中连1的数目是n,连0的数目是n-1;分布无规律,具有与白噪声相似的伪随机特性。
m序列的均衡性以及它的游程分布特性【5】使得m序列码在通信、雷达、系统可靠性测试等方面获得了广泛地应用。
本文正是基于m序列的这些特点采用VerilogHDL【6】生成m序列,用于验证SPI总线设计的正确性。
2、SPI总线协议
SPI接口是以主从方式工作的,这种模式通常有一个主设备和一个或多个从设备,其接口包括以下四种信号,如图2所示,MOSI主器件数据输出,从器件数据输入;MISO主器件数据输入,从器件数据输出;SCLK时钟信号,由主器件产生;/SS从器件使能信号,由主器件控制。
图2:
SPI总线结构
Fig.2thestructureofSPI
本文将主机和从机的串行移位寄存器都设定为16位,主机通过向寄存器写入1次16位数据,在时钟SCLK的上升沿发起串行数据传输,寄存器是通过MOSI信号线将数据传送到从设备。
每1次时钟SCLK的下降沿,从机在收取MOSI数据线的同时也将自己移位寄存器中的数据通过MOSI信号线返回给主机。
最初从机中并没有数据,同样,在主机端也在时钟上升沿收取MISO信号线的值,因此在最初的16个时钟沿主机并未收取到从设备返回的数据,只有从第2次开始的16个时钟沿主设备才能收取到从设备返回的第1次传输的数据,此时数据从主机到从机后由从机返回到主机,数据经过了一次交换。
3、测试
本文在Modelsim环境下对所生成的m序列进行了验证同时根据m序列的伪随机特性,如图4所示,用m序列模拟通信中的随机信号,对设计的SPI接口进行了测试。
本文首先对生成的m序列进行了验证。
如图5所示为生成的16级m序列,本文设计时生成每组16bit数据的间隔时间为18个时钟周期,原本生成一组16bit的数据只花费一个时钟周期,这样做的目的是为了方便作为SPI接口的测试数据。
有上述的SPI接口原理可知,SPI接口通信时数据是按位传送,为了测试的方便本文仍沿用产生m序列的时钟作为SPI主机发送数据时钟,同时将sclk时钟依旧设定为与主机时钟相同。
经过16个时钟周期后主机将寄存器中的数据通过mosi在sclk的上升沿将数据传送给从机,这样从机在经过16个时钟周期的下降沿就能将mosi的数据移到从机的移位寄存器中,由于本文采用的是环形结构,从机在下降沿将同时将16位的移位寄存器中的数据按位从miso传送到主机。
主机在时钟的上升沿收取miso数据,最终由主机查看收到的数据来判断SPI接口设计的正确性,如图6所示,1个时钟周期用来产生数据,16个时钟周期用来传送数据,1个时钟周期用来设置ss。
图中ss为高时则不能发送数据,由图可知,仿真所得结果中in_data与经过移位后环回的值out_data的是相同的。
结论:
本文通过对VerilogHDL在QuartusII平台上实现了SPI总线也实现了16级的m序列。
利用m序列的伪随机性将其作为SPI接口设计的测试数据经过测试可知接口的设计时正确的。
实现的SPI接口在通信接口中具有极其广泛的应用。
五、体会与展望
通过此次课程设计,使我更加扎实的掌握了有关SPI总线方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断检测最终的调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于迎刃而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。
同时,设计让我感触很深。
使我对抽象的理论有了具体的认识。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在实验课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。
SPI总线主要特点是全双工、可以当作主机或从机工作、提供频率可编程时钟、发送结束中断标志、写冲突保护、总线竞争保护等。
根据这些特点,人们做出了各种基于SPI总线的设计,这也让SPI总线的应用越来越广泛起来,相信在未来的发展中,SPI总线会发展的越来越好,应用也会越来越多的。
六、参考文献
【1】郭静华欧阳斌林.SPI总线从机接口实时模拟的实现【J】.东北农业大学学报.2007.385:
669-671
【2】2SPI总线通信协议OL.2009.8.
【3】SPI总线简介OL.2008.4.
【4】樊昌信曹丽娜.通信原理第6版M.北京:
国防工业出版社2006.
【5】周俊杰常硕王德功.伪随机序列的生成及其在雷达捷变频技术中的应用J.长春理工大学学报自然科学版2010332
【6】夏宇闻Verilog数字系统设计教程M.北京:
北京航空航天大学出版社2003
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 电子 系统 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)