-
精品文档
2013.7
多摩川编码器总结
一、摘要
基于
CPLD
和
DSP
实现
CPLD
与多摩川编码器的通讯,通过对编码器发
送请求,得到
编码器发回的数据并进行解码,得到绝对位置值。
二、学习步骤:
1
、熟悉工作环境,掌握
Modelsim
以及
Quartus
的使用。
2
、阅读多摩川编码器的通讯协议。
3
、根据协议编写
< br>testbench
,并在
Modelsim
上进行仿真调试。
4
、仿真通过后,通过
Quartus
编
译后下载到
CPLD
上并与编码器通讯,实际情况下运
行。
5
、完成各项要求的功能。
6
、对代码进行优化,尽可能减少资
源占用。
7
、验收。
三、总体结构
双绞线,差分式,串行
接口
TS5668N21
多摩川绝对编
码
器
RO,DI,DIR逻辑信号
地址
/数据总线接口
MAX485电平转
换接口
CPLD解码
DSP
结构分三部
分:多摩川编码器,
CPLD
,
DSP
。
1
、编码
器跟
CPLD
之间通过
MAX485<
/p>
电平转换进行连接。
2
、
CPLD
与
DSP
则通过总线进行连接(这一部分结构编写学长已经完成并且提供了端
口连
接)
3
、主要工作是
CPLD
的解码部分。
四、通讯协议
1
、
TS5668
的技术指标:
(物
理层)
精度:单圈精度
:
17
位
(131 072)
多圈精度
:
16
位
(65 536)
最高转速
/ (
r
·
min - 1
)
:
6
000
】
输出:差分
NRZ
编码二进制
传输速度
/Mbp
s
:
2. 5
发送、接收电路:差分形式
通信方式:主从模式
接口:
3FG
,
4sig+
,
5sig-
,
7VCC
,
8DGND
。
4
和
5
为差分信号接口。
2
、通信步骤如下图:
(逻辑链路层)
1
)
CPL
D
向编码器发送一个控制字
CF
2<
/p>
)
3us
后编码器返回数据包。
3
)
CPLD
对数据包进行解码,并将得到的数据放在总线上,等待
DSP
获取。
具体流程如下图:
精品文档
精品文档
3
、字的结构:下图分别为
CF
、
p>
DF
、
CRC
字的
结构。
1
)
CF
p>
字的开始位为
0
,再是
010
的同步位,以及
4
位的控制
位,
1
位奇偶校验位(对控制位
进行奇
偶校验)
,结束位为
1
,共十位。
p>
通过不同的
Data ID
code
可以实现不同的功能,具体功能如下表:
2
)
SF
该字包含错误信息,
如编码错误和通
讯警报。
通过检测相应位置上的值,
就可以确定编
码器的工作状态是否正常。
精品文档
精品文档
3
)
CRC
p>
进行
CRC
校验时,要对所有数据进行校验
。计算时除掉每字的起始位和分隔符。
4
)数据传输
正如
CF
介
绍中提到,不同的
CF
控制命令会对应不同的数据结构传输。主
要有三类,
而我们用的是
Data
ID0
,绝对数据传输。后面的空格表明没有数据传输。
p>
数据传输中,低位在前,高位在后,每一字都是以
0
开始以
1
结束。由于是
17<
/p>
位精度
编码器,
DF2
< br>数据位的高
7
位都是
0
。
五、需求分析
1
、启动
D
SP
每隔
60us
向
< br>CPLD
发送一个启动脉冲,
CPLD
< br>捕捉到上升沿后开始向编码器发送
CF
请求命令。如果<
/p>
CPLD
已经处于发送或接受状态,再接收到启动脉冲,不予响应
。
2
、
48
5
使能
由于
CPLD
与编码器的通讯需要
MAX485
进行电平转换,
而
MAX485
是
一个半双工器
件,因此,需要提供一个端口控制
485
的使能端,决定
485
的读写控制。
3
、频率要求
板子上提供
10M
频率的时钟,而多摩川编码
器的通讯协议需要
2.5M
频率时钟,因此
精品文档
精品文档
需要分频。
4
、异常情况分析
< br>考虑到传输过程中的异常情况(比如把“
0
”传输成“<
/p>
1
”
,或者反之)
,以及其他可能
会出现的错误情况。
1
)编码器接受到错误的
CF
,给出
了相应的回应。
2
)编码器接受到错
误的
CF
,没有回应。
3
)编码器自身出现错误(在
SF
< br>中会给出错误类型)
。
5
p>
、与
DSP
的通讯
得到绝对位置值之后,需要将读取的结果发送给
DSP
,而这一过程需要提供一个端口
使
CPLD
p>
与
DSP
连接。
六、整体设计
1
、流程图
基于多摩川编码器的通讯协议以及需求分析,可以做出以下流程图。
闲置
有启动脉冲
无响应或无
发送
CF
正确响应
正确完成一周期或
错误结束一周期
等待响应
有正确响应
接收数据
处理数据
2
、分配状态
根据流程图,
可以通过
“状态机”
来
完成各个状态之间的切换,
因此,
分配状态为:
Idle
(闲置)
,
Requ
est
(请求)
,
Wait
(等待)
,
Receive
(接收)四个状态。状态机的编写有一段
式、两段式和三段式,这里状态比较简单,可
以采用结构简单的一段式。
(对于复杂的状态
机,不推荐使用一
段式)
具体写法如下:
精品文档