多摩川编码器总结.docx

多摩川编码器总结.docx

ID:52533584

大小:346.01 KB

页数:9页

时间:2020-03-28

多摩川编码器总结.docx_第1页
多摩川编码器总结.docx_第2页
多摩川编码器总结.docx_第3页
多摩川编码器总结.docx_第4页
多摩川编码器总结.docx_第5页
资源描述:

《多摩川编码器总结.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2013.7多摩川编码器总结一、摘要基于CPLD和DSP实现CPLD与多摩川编码器的通讯,通过对编码器发送请求,得到编码器发回的数据并进行解码,得到绝对位置值。二、学习步骤:1、熟悉工作环境,掌握Modelsim以及Quartus的使用。2、阅读多摩川编码器的通讯协议。3、根据协议编写testbench,并在Modelsim上进行仿真调试。4、仿真通过后,通过Quartus编译后下载到CPLD上并与编码器通讯,实际情况下运行。5、完成各项要求的功能。6、对代码进行优化,尽可能减少资源占用。7、验收。三、总体结构结构分三部分:多摩川编码器,CPLD,DSP。1、编码器跟CPLD之间通过M

2、AX485电平转换进行连接。2、CPLD与DSP则通过总线进行连接(这一部分结构编写学长已经完成并且提供了端口连接)3、主要工作是CPLD的解码部分。四、通讯协议1、TS5668的技术指标:(物理层)精度:单圈精度:17位(131072)多圈精度:16位(65536)最高转速/(r·min-1):6000】输出:差分NRZ编码二进制传输速度/Mbps:2.5发送、接收电路:差分形式通信方式:主从模式接口:3FG,4sig+,5sig-,7VCC,8DGND。4和5为差分信号接口。2、通信步骤如下图:(逻辑链路层)1)CPLD向编码器发送一个控制字CF2)3us后编码器返回数据包。3)C

3、PLD对数据包进行解码,并将得到的数据放在总线上,等待DSP获取。具体流程如下图:9/93、字的结构:下图分别为CF、DF、CRC字的结构。1)CF字的开始位为0,再是010的同步位,以及4位的控制位,1位奇偶校验位(对控制位进行奇偶校验),结束位为1,共十位。通过不同的DataIDcode可以实现不同的功能,具体功能如下表:2)SF该字包含错误信息,如编码错误和通讯警报。通过检测相应位置上的值,就可以确定编码器的工作状态是否正常。9/93)CRC进行CRC校验时,要对所有数据进行校验。计算时除掉每字的起始位和分隔符。4)数据传输正如CF介绍中提到,不同的CF控制命令会对应不同的数据结

4、构传输。主要有三类,而我们用的是DataID0,绝对数据传输。后面的空格表明没有数据传输。数据传输中,低位在前,高位在后,每一字都是以0开始以1结束。由于是17位精度编码器,DF2数据位的高7位都是0。五、需求分析1、启动DSP每隔60us向CPLD发送一个启动脉冲,CPLD捕捉到上升沿后开始向编码器发送CF请求命令。如果CPLD已经处于发送或接受状态,再接收到启动脉冲,不予响应。2、485使能由于CPLD与编码器的通讯需要MAX485进行电平转换,而MAX485是一个半双工器件,因此,需要提供一个端口控制485的使能端,决定485的读写控制。3、频率要求板子上提供10M频率的时钟,而

5、多摩川编码器的通讯协议需要2.5M频率时钟,因此9/9需要分频。4、异常情况分析考虑到传输过程中的异常情况(比如把“0”传输成“1”,或者反之),以及其他可能会出现的错误情况。1)编码器接受到错误的CF,给出了相应的回应。2)编码器接受到错误的CF,没有回应。3)编码器自身出现错误(在SF中会给出错误类型)。5、与DSP的通讯得到绝对位置值之后,需要将读取的结果发送给DSP,而这一过程需要提供一个端口使CPLD与DSP连接。六、整体设计1、流程图基于多摩川编码器的通讯协议以及需求分析,可以做出以下流程图。闲置有启动脉冲无响应或无正确响应发送CF正确完成一周期或错误结束一周期等待响应有正

6、确响应接收数据处理数据2、分配状态根据流程图,可以通过“状态机”来完成各个状态之间的切换,因此,分配状态为:Idle(闲置),Request(请求),Wait(等待),Receive(接收)四个状态。状态机的编写有一段式、两段式和三段式,这里状态比较简单,可以采用结构简单的一段式。(对于复杂的状态机,不推荐使用一段式)具体写法如下:9/9reg[1:0]stateparameterIdle=2'b00,Request=2'b01,Wait=2'b10,Receive=2'b11。…case(state)Idle:…Request:…Wait:…Receive:…3、闲置状态CPLD处于

7、闲置状态,等待DSP发送命令。当DSP发送启动脉冲后,CPLD检测到上升沿,即由闲置状态进入请求状态,同时,为请求状态做好初始化准备。而在其它状态检测到上升沿时,则不予响应。具体代码如下:1)检测启动脉冲always@(posedgestartorposedgestart_fg1)beginif(start==1)start_fg<=1'b1。if(start_fg1==1)start_fg<=1'b0。end2)状态更改并为请求状态做好初始化

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。