-
摘
要
:
p>
基于嵌入式系统发展的需要,
提出
TMS3
20VC5402 DSP
与
AT89C51
< br>单片机
通信的三种设计方案。
利用
TMS320VC5402
的多通道缓冲串口
MCBSP
p>
分别实现
TM
S320VC5402
与
AT89C51
的
SCI
和
SPI
串行通信,
以及通过
TMS320VC5402
的
8
位
增强主机接口
HPI
一
8
实现
TM
S320VC5402
与
AT89C5l
并行通信。就硬件接口电
路和软件编程进行详细的阐述。
关键词
:单片机
DSP MCBSP
HPI
将
DSP
和单片机构成双
CPU
处理器
平台,
可以充分利用
DSP
对大容量数
据和复杂
算法的处理能力,
以及单片机接口的控制能力。
而
DSP
与单片机之间快速正确的
通信是构建双
CPU
处理器的关键问题。下面就此
问题分别设计串行
SCI
、
SPI
p>
和
并行
HPI
三种
连接方式。
1
串行通信设计与实现
1 1
SCI
串行通信设计
1.1.1
多通道缓冲串行口
McB
SP
原理
TMS320VC5402(
简称
VC5402)
提供了
2
个支持高速、全双工、带缓冲、多种数据<
/p>
格式等优点的多通道缓冲串行口
McBSP
。
MCESP
分为数据通路和控制通路。①数
据通路负责完成数据的收发。
CPU
或
DMAC
能够向数据发送寄存器
DXR
写入数据,
DXR
中的数据通过发送移位寄存器
XSR
输出到
DX
引
脚。
DR
引脚接收数据到接收
移位寄存
器
RSR
,再复制到接收缓冲寄存器
R
BR
,最后复制到数据接收寄存器
DR
R
。这两种数据多级缓冲方式使得数据搬移和片外数据通信能够同时进行。②控
制通路负责内部时钟产生,
帧同步信号产生,
信
号控制和多通道选择。
另外.
还
具有向
CPU
发送中断信号和向
DMAC
p>
发送同步事件的功能。
MCBSP
时钟和帧
同步
信号通过
CLKR
、
CLKX
、
FXR
、
FSX
引脚进行控制,接收器和发送器可以相互独立
< br>地选择外部时钟和帧同步信号,
也可以选择由内部采样率发生器产生时钟和帧同<
/p>
步信号。帧同步脉冲有效表示传输的开始。
1.1.2
SC
I
串行接口设计
设置
VC5402
< br>的
McRSP
输出时钟和帧同步信号由内部采样率发生器
产生,内
部数据时钟
CLKG
和帧同步
信号
FSG
驱动发送时钟
CLKX
p>
和帧同步
FSX(CLKXM=l
,
FSXM=l
,
FSGM=1)
,输入时钟也由内部采样率发生器产生,内部数据时钟
CLKG
驱动接收时钟
CLKR(CLKRM=1)
,同时由
CPU
时钟驱动采样率发生器
(CLK
SM=1)
。
考虑到
AT89C51(
简称
C51)
串口发送数据帧中第
p>
l
位为起始位,因此可以利用该
位驱动输入
帧同步信号
FSR
,同时要置忽略帧同步信号标志为
1
。其中
FSG
帧同
p>
步脉冲宽度=(FWID+1)·CLKG;
FSG
帧同步脉冲周期=(FPER+1)·CLKG;采样率发
生器分频系数
(
采样率
=
波特率<
/p>
)=FIN
/
(CLKGDV+1)
p>
。
SCI
p>
串口连接如图
l
所示。
1.1.3
波特率不一致的处理
VC5402
初始化
(
以图
1
为例
)
:<
/p>
STM#SRGRl,SPSAl
S
TM#ooFEH
,
SPSDl
;
p>
FSG
帧同步脉冲宽度位为
1
个
CLKG
;波特率为
100
MHz
/
(0X(OFF)=392 156
b
/
s
STM#SRGR2
,
SPSAl <
/p>
STM#3D00H,SPSDl;
内部采样率发生器时钟由
p>
CPU
驱动
C51
初始化:
MOV TMOD,#20H
MOVTLl,#FFH
MOVTHl
,
#FFH
;
C51
波特率
=(2S
MOD
/
32)*(fosc
/
12)[1
/
(256
一初值
)]
一
24
509 b
/
s
MOV SCON
,
#50H
;置串口方式
l
,每一帧
10
位数据.允许接收
MOV
PCON
,
#80H
;设置
SMOD=1
VC5402<
/p>
波特率/
C51
波特率
< br>=(392 156
/
24
509)=16
.
000 49
<
/p>
VC5402
每发送
16
位数据,
C51
只采样
1
p>
位数据。
在
VC5402
< br>存储器中开辟一个空
间对每次发送的
8
< br>位数据进行扩展,
1
位扩为
16
位,
0
为
00
00H
,
l
为
FFFFH
,
共扩为
128
位。在数据头部填加
16
位起始位
0000H
,数据尾部填加停止位
FFFF
H
。
在
VC5402
p>
发送控制寄存器
XCR
中设置
XWDLEN=000(1
字含
8
< br>位
)
,
即可将要发
送的
8
位数据封装成
1
p>
帧
10
字的数据。
这也符合
C51
串口
1
方式下
1
帧
10
位的
数据格式。
C51
以<
/p>
1
/
16
的
p>
VC5402
采样速率接收数据,
0000
H
采样为
0
,
FFFFH
采样为
1
,由此可以将接收
到的
200
位恢复为
8
位数据,停止位进入
RB8
。
C51
每发送
1
位数据,
VC5402
要采样为<
/p>
16
位数据。
C51
一次发送的
10
位数据的
起始位触
发
VC5402
的接收帧同步。由于
V
C5402
以
16
倍
< br>C51
的采样速率接收数
据,
1
位采样为
16
位,
0
采样为
0000H
,
1
采样为
FFFFH
.只
采样发送来的
10
位
中的前
9
位,
9
位封装成
144
位,即接收的
1
帧数据完成。
VC5402
将收到的
144
位数据在开辟的存储器空间存放,抛弃前
16
位,在剩下的
128
位里分成
8
组,
每组
16
< br>位。比较其中间的
8
位,若有
4
位以上为
1
,则该
16
位为
1
,反之则为
0
。由此将接收到的
144
位恢复为
8
位数据。
为了不让
CPU
频繁地被数据接收和发送打断,
将
DMA
< br>和
MCBSP
联合使用来控制数
据的接收和发送。
RRDY
直接驱动
M
CBSP
向
DMAC
接收数据事件
p>
(REVENT
事件
)
,
X
RDY
直接驱动
MCBSP
向
DMAC
发送
数据事件
(XEVENT
事件
)
。
SCI
通信协议如图
2
所示
1. 2
SPI
串行通信设计
-
-
-
-
-
-
-
-
-
上一篇:欧特克ACADM2013 简体中文版下载
下一篇:软件版本符号