众所周知,TMS320C6203B DSP本身不带UART(RS232)口,在使用C6203B+FPGA的嵌入式系统中要实现UART通信有三种方案可选:
1、用DSP的McBSP(多通道缓冲串口)仿真UART,可参见TI的技术文档SPRA633B,网上也许多文章对此进行了较详细的介绍。但此方案的缺点是大部分模拟仿真工作需软件完成,且UART通信速度较慢(最大几百K)对实时处理系统的速度影响较大。
2、扩充外部专用UART芯片,特别可以利用DSP的SPI口可方便地与SPI-UART专用芯片(如NXP的SC16IS762)相连。此方案的缺点是需更改系统设计,没有充分利用系统现有资源(FPGA)。
3、利用系统中的FPGA实现UART通信,此方案弥补了上述2个方案的缺点。虽然用FPGA实现UART是件很简单的事,但由于C6203B DSP的特殊性,实现起来技术上却存在不少难点:
(1)C6203B与FPGA只能用XBUS扩展总线相连,读写FPGA不能使用普通I/O指令,必须使用DMA方式,这样就加大了读写操作的复杂性,调试起来也较麻烦。
(2)FPGA实现UART的免费IP核有很多,比较常见的有LAttice的8250UART、Xilinx的简易UART,以及网上很容易下载到的97版UART(与Xilinx的类似)。但这些IP源代码都要检测-RD、-WR信号的上升/下降沿,对应DSP的信号为:-XRE、-XWE。由于C6203B的主频达250M,其读写信号的负脉冲宽度只有10ns左右,而UART模块中检测读写信号边沿所用的同步时钟频率即使在115.4K高波特率时才1.83M(115.4Kx16),显然很难正确识别读写信号的边沿&
C6203B DSP系统中用FPGA实现UART的技术难点及解决方案
最新推荐文章于 2022-02-23 15:02:25 发布