×

TMS320C54X的LJART串口通信功能

消耗积分:1 | 格式:rar | 大小:0.2 MB | 2017-10-30

分享资料个

TMS320C54x DSP的外设没有集成UJART串口,可以通过两种途径来实现TMS320C54X的LJART串口通信功能。一是通过软件的方法。二是采用外部接口芯片组,完成RS232信号的接收和发送,并以DSP容易快速访问的方式与DSP接口。
  1 采用软件模拟
  TMS320C54x DSP软件模拟实现LJART无需额外硬件开销,仅需通用I/(BIO和XF)、外部中断INTO以及一个定时器就可实现,硬件连接如图l所示。
  TMS320C54X的LJART串口通信功能
  图l中,XF引脚用于发送数据,BIO脚和INTO脚用于接收数据。此方法可以模拟半双工通信与全双工通信。软件模拟IJART技术允许用户设置:数据位数(1~16)、奇偶校验(奇校验或偶校验)或无奇偶校验、停止位(1~2)和波特率。每秒传输比特数计算公式为:
  TMS320C54X的LJART串口通信功能
  改变寄存器TDDR和PRD的设置值,可以获得不同的波特率。BaudRate最大值是:
  TMS320C54X的LJART串口通信功能
  其中,clkfreq是DSP系统时钟,#cycles是子程序执行周期,bit是完成UART功能限定条件(1/2或1)。
  另外,需要两个存储单元分别用作UART状态寄存器和计数器,以便控制软件完成接收与发送任务。
  1.1 接收功能
  要正确接收数据流,首先要检测起始位。由于百BIO和INTO连在一起,一旦低电平有效则启动INTO中断。首次响应中断,定时器设置定时周期为1/2码元宽度,以便保证在起始位中间位置定时中断采样BIO引脚。如果采样电平为高,起始位就是虚假信号,定时器立即停止定时并退出子程序。如果为低,则认为检测到起始位,关闭外部中断INTO以免数据流中的O再被误认为是起始位。接收后续数据时,每次定时器没置定时周期为一个码元宽度,保证在码元中间采样,从而减少误码。当收到若干个(数据位数可根据需要设定为1~16)数据后,再检测停止位和奇偶校验位。若数据接收正确,则格式化输出数据(去掉起始位、停止位和奇偶校验位)。同时计数器清零,复位RCV(接收标志位.在LJART状态寄存器中设定)标志位,并开中断为下一次检测数据流的起始位做好准备。
  1.2 发送功能
  一旦发送数据,并且发送子程序被调用,必须先将发送数据格式化(加上起始位、停止位和奇偶校验位)存在某个存储单元以备发送。然后,检测TX位是否被置位(即有无数据正在发送)。若是,则循环等待直到TX(发送标志位,在UART状态寄存器中设定)被复位为止。要知道何时开始发送下一个数据,需要定时器定时中断来控制,同时还需要一个发送计数器控制程序流程。由于发送和接收是独立进行的,它们共用唯一的一个定时器,如果UART在接收数据过程中定时器突然被发送功能占用,则必然会破坏数据。发送数据前必须检测RCU标志位,确认没有正在接收数据后才能开始发送数据,否则发送程序等待。因此,准确来讲,这种发送接收方式只是一种半双工方式,发送和接收不能同时进行。如果要实现全双工通信,则无论是否正在接收数据,发送都延迟一段时间等待下一次接收,然后与其同步进行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !