![]() |
|
||||||||||||||
| . 网站首页 . 产品新知 . 业界新闻 . 解决方案 . 技术文库 . 在线学院 . 活动访谈 . 下载中心 . 电子商城 . 邮购须知 . 论坛 . | ||
|
||
|
|||||
| TMS320F24x与PC机串行通信接口设计及应用 | |||||
作者:张琴 文章来源:今日电子 点击数: 更新时间:2007-4-11 ![]() |
|||||
|
武汉化工学院计算机系 张琴
摘 要:根据DSP F240芯片的结构特点,介绍了一种F24x系列DSP芯片与PC机之间串行通信接口的设计方法,并详细讨论了串行通信接口的硬件实现、通信协议的设定以及通信程序的编制要点。该设计方案简单易行、通信稳定可靠、具有一定的通用性。 关键词:DSP;TMS 引言 ---TMS
串行通信接口的硬件设计 ---F240芯片内部集成了一个串行通信接口(SCI)模块,该模块是一个标准的通用异步接收/发送(UART)通信接口,通信接口有SCITXD(SCI发送输出引脚)和SCIRXD(SCI接收输入引脚)两个外部引脚,引脚的信号电平为TTL类型。而PC机串口的异步串行通信基于RS ---以RS ---实际使用过程中,系统在选择不同的通信标准时,切换十分方便。如图1所示,当跳线端子JUMP2与JUMP3的2、3脚短接时,SCITXD接通MAX232芯片的T1I引脚,SCIRXD接通MAX232芯片的R1O引脚,即DSP的通信接口与MAX232芯片相连,此时系统采用RS 通信接口的软件设计 ---● 通信协议的设定 ---UART通信对噪音比较敏感,特别是脉冲边沿抖动。所以,为了确保UART能够正确工作,必须能够检测它的开始和结束字节。也就是说,需要一定的数据包格式,即使是使用一个UART端口,在这个数据包中的每一个字节也都要编成UART格式。因此在异步串行通信中,收、发双方必须事先规定字符格式、采用的波特率,以及时钟频率和波特率的关系。 ---这些规定是通过初始化设置与串行通信有关的寄存器来实现的。本通信系统中,规定字符格式为:每一帧的数据占10位,一位奇校验位,8位数据位,1位停止位。中间的8位数据位即为有效的通信传输字节。双方的波特率设置为19200bps。同时,为了增强通信的可靠性,减少通信的误码率,规定了通信双方收发数据包的协议如表1所示。 ---特征码选用0XFF、0XAA、0X55这3字节为发送数据包的前导数据,这是因为这几字节在传输噪声中同时出现的几率很小,特征码起到向接收方表明有数据发送过来的作用,通知接收方可以开始接收有效数据;字节数是数据包中除了字节数这一项之外,其他所有项字节的长度;有效数据字符串是通信发送方要传送的有效数据;校验和是数据包中除了校验和这一项之外所有项字节的无进位累加和,用于校验通信是否正确。 ---同时,在通信过程中约定了双方的软件握手方法。为了不使通信过于复杂,提高通信速度,可以直接将握手信号0XFF嵌入到数据包中。软件握手协议规定如下:PC定时发送符合通信协议规定的数据包,DSP接收到的第四字节若为握手信号0XFF,则将校验正确后的有效数据存储,并从中分解有效字节信息,然后回送相同格式的数据包。若PC接收到的数据包的第四字节不是0XFF,则摒弃该数据包。DSP与PC的通信流程图如图2所示。 ---● DSP端下位机SCI通信程序的编制 ---在DSP端的软件程序设计中,通过中断方式接收PC发送过来的数据包,握手并校验确认后接收有效数据,再将PC所需的数据打包回送。基于DSP功能模块化的特点,其串行通信汇编程序的编制主要分三个步骤: ---(1)初始化设置时钟源模块,得到所需的CPUCLK和SYSCLK(因为计算波特率时与之有关); ---(2)设置SCI模块,初始化各SCI控制寄存器; ---(3)编写串行通信中断服务子程序,即可完成DSP与PC之间的串行通信。 ---在串行通信中断服务子程序的编制过程中,参考图2所示的DSP与PC串行通信流程图,即可完成正常的数据通信任务。如果需要利用软件来实现DSP与PC的双向复位,则可将图1中的跳线端子JUMP1的1、2脚短接,串口的DTR引脚通过上拉电阻接通电源,将JUMP4的2、3脚短接,MAX232的第二路收/发单元的发送引脚接通DSP的复位端HOSTREST。系统上电之后,DTR呈现高电平状态,若系统运行过程中出现DSP控制器的程序出错、监控对象异常时,可以通过在上位机端执行特定的复位操作,在程序中使PC串口的DTR引脚状态产生由低到高的电平变化,通过MAX232芯片的第二路通信收/发单元,将输出电平传递给HOSTREST,最后提供给DSP的复位引脚RS,使得复位引脚RS上同样出现低到高的电平变化,从而使DSP复位,下位机DSP控制程序得以重新运行。同样的,当DSP端自行检测到通信数据不正常时,可以根据检测结果,自行发送复位信号。通过指令CLR XF,置位XF引脚为低电平,经由MAX232芯片的第二路通信收/发单元,串口的CTS引脚接收到低电平信号,PC端程序若查询到CTS电平出现由高到低的电平变化时(触发comEvCTS事件),自动改变程序运行流程,使得PC端的通信程序重新开始,以期恢复通信的正常。当然,也可以通过在DSP端改变XF引脚电平状态,作为给PC发送的特定命令信号,相当于在DSP与PC之间预留了一个相互联系的通信接口。 ---● PC端上位机通信程序的编制 ---上位PC串行通信程序在Windows 2000平台下采用Visual C++ 6.0实现。VC自带的ActiveX控件Microsoft Communications Control,即MSComm控件,提供了对Windows通信驱动程序的API函数接口,为应用程序提供了通过串行口收发数据的简便方法。因此直接在应用程序中嵌入MSComm控件,可以方便地进行计算机串口的通信管理。即只需设置MSComm控件的相应属性,调用控件的相应方法和事件,按照通信协议的要求定时发送数据包,上位机即可完成相应功能,实现数据通信任务。 ---MSComm控件提供下列两种处理通信的方式:事件驱动方式和查询方式。表2列出了MSComm控件的主要属性并给出了这些属性在程序中的设定值。上位PC一般采取事件驱动的方式接收来自于下位机DSP的二进制数据。事件驱动方式的工作原理类似于中断,当有通信事件发生时(如发送数据、接收数据等),就会触发OnComm事件,在该事件的处理函数中调用GetCommEvent()函数,通过返回值即可确定是哪类事件,再做出相应的数据处理,完成双方之间的通信。 结束语 ---通过串行口完成DSP与PC之间的通信,具有硬件接口简单、数据传送距离远以及开发周期短、成本低的特点,已经成功应用到研制的机器人作业系统中。本文介绍的TMS 参考文献 1 张雄伟.DSP芯片的原理与开发应用.电子工业出版社. 1997 2 TMS 3 李朝青.PC机及单片机数据通信技术.北京航空航天大学出版社. 2001 4 向先波,张琴.TMS |
|||||
| 欢迎点击进入:"61IC中国电子在线"官方网站 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 基于DSP控制的三电平变频器的 基于DSP+μC/OS-Ⅱ的励磁系 基于TMS320F2812的视频图像采 一种长序列小波变换快速算法 基于DSP的图像旋转算法数据调 基于DSP的高动态GPS接收机关 DSP软件向桌面和嵌入式系统挑 基于DSP的液晶模块的显示原理 DSP和FPGA在汽车电子中的广泛 DSP与慢速设备接口的实现 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|