DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 227|回复: 0
打印 上一主题 下一主题

基于DSP的嵌入式以太网接口转换器

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 14:25:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
????? 引言




?
  许多测量和控制设备都是通过串口与其他设备通信,使设备间的数据交互和远程控制受到限制。如果能把串口的数据转换成网络数据格式,组建一个局域网(LAN)来进行数据的交互与传输,则上述的限制将得到有效的改进。考虑到以太网组网技术的易于理解、实现、管理和维护,且成本低廉、网络拓扑结构灵活的优点,应用以太网组网技术来搭建数据交互的平台。其中的关键就是接口转换器的实现。
  DSP芯片作为一种特殊的嵌入式微处理器系统,具有嵌入的协处理器和用于快速数据处理的并行数据通道,而且DSP在语音图像信号处理方面也具有强大功能。在嵌入式网络设备中引入DSP技术,可以使嵌入式以太网变得更快,成本更低,也更容易进行功能扩充,因此选用DSP芯片作为接口转换器的微控制器。
  为提高网络通信效率,可以采用自定义的从数据链路层到应用层的网络通信协议,以适应特定场合应用的需要;如果需要,还可以编写一个自定义协议和TCP/IP互译的网关软件,实现嵌入式网络和Internet的连接。
  本文介绍的接口转换器解决了车内的数字式语音通信系统的接口转换问题。
  1 接口转换器的硬件设计
  在设计一个嵌入式系统时,不但要考虑系统所要具备的功能,同时还要考虑价格、体积等因素。TMS320C3X[1]系列芯片是TI公司推出的浮点运算DSP芯片。由于其较高的性价比,TMS320C3X的应用极其广泛;由于将浮点运算与定点运算结合起来,具有更高的精度,并且不必考虑运算的溢出问题,因此浮点DSP具有更高的性能,更容易在系统的处理器上实现高级语言[2]。TMS320C32是TMS320系列浮点数字信号处理器的新产品,在TMS320C30和TMS320C31的基础上进行了简化和改进。在结构上的改进主要包括:可变宽度的存储器接口、更短的指令周期时间、可设置优先级的双通道DMA处理器、灵活的引导程序装入方式、可重新定位的中断向量表以及可选的边缘/电平触发中断方式等。对TMS320C32的开发可以用汇编语言,也可以用C语言。使用汇编语言的优点在于,运行速度快,可以充分利用芯片的硬件特性;但开发速度较慢,程序的可读性差。使用C语言的优势在于,编程容易、调试速度快、可读性好,可以大大缩短开发周期;但C语言对于其片内没有映射地址的特殊功能寄存器不能操作,如IF和IE、AR0~AR7等。
  以太网接口芯片采用CS8900A[3]。该芯片是Cirrus Logic公司生产的一种局域网信号处理芯片,内部集成了片上RAM,其模拟前端包括曼彻斯特编解码器、时钟恢复电路、10bASE2T收发器和滤波器及一个AUI(Attachment Unit Interface)接口。CS8900A的MAC(Medium Access Control,媒体访问控制)引擎负责以太网数据帧的发送和接收、检测和处理冲突,生成和检测帧引导头(Preamble),自动生成和校验CRC(Cyclical Redundancy Check,循环冗余校验)码。芯片在网络物理层符合IEEE 802.3以太网标准,支持全双工操作,是嵌入式平台实现10 Mbps以太网连接的很好的选择方案。
  接口转换器的硬件框图如图1所示。DSP作为整个硬件模块的CPU,SRAM用作外部数据存储器,Flash用于存储程序,CPLD或FPGA用于扩展DSP的对外接口控制。虚线框是可扩展的模块。



  物理层的前同步码(即物理帧前导符+物理帧界定符)8字节由硬件自动生成。除去这8个字节,将其余字段的长度加起来,可以得到以太网帧的最大长度为1 518字节,最小长度则为64字节;加上8字节的前同步码,即可得到最小帧长度为576位。这样长度的帧能够保证所有冲突都可以检测到。这是因为IEEE 802.3标准中,两个站点的最远距离小于2 500 m,由4个中继器连接而成,其冲突窗口为2倍电缆传播延迟加上4个中继器的双向延迟之和,合计为51.2μs。就10 Mbps以太网而言,这个时间段内等于发送64字节(即512位)的数据。
  使用CSMA/CD作为一种访问控制方式,意味着最短数据帧长度与网络上最长传输延迟时间间隔有着密切的关系。要保证在发送过程中出现冲突时,冲突域内的所有结点都应该知道发生了冲突,以便采取适当的措施。这就需要最短数据帧长度必须大于网络上的最长传输延迟时间间隔,再加上阻塞附加时间和同步延迟时间等。这就是IEEE 802.3标准中最短帧长度为64字节的由来。[4]
  其中应用层帧类型分为数据帧和数据确认帧两种,具体结构如下:



  由于数据帧长度可变,又由于数据确认帧的MAC层长度仅为18字节,故在网络控制器初始化时须设置MAC层PAD填充功能(即MAC帧长度少于64字节时,网络控制器自动将其填充至64字节后再交给物理层)。
  自定义数据帧的预留管理单元还可以制定一些简单的控制或管理信息帧,以便更好地扩充功能和组织软件。限于篇幅,兹不赘述。如想连入Internet,需要在系统中加入一个能够转换本协议和TCP/IP协议的前端网关(实质上是一个交互翻译的软件系统)。
  3.4程序设计流程
  本接口转换器所要实现的功能是把从RS232串口接收到的串口数据转换成以太网帧格式发送到以太网,并把从以太网上接收到的帧数据解包转换到串口传送。程序设计中包含初始化程序、主循环、串行接口程序和网络通信接口程序。
  程序运行首先进行初始化工作,包括初始化CS8900A、初始化串口和初始化一些参数,然后进入主循环。主循环内循环运行CS8900A中断服务查询程序和串口缓冲区查询程序,若有CS8900A中断申请,则中断调用网络通信接口程序;若串口缓冲区有数据,则中断调用串行接口程序。流程如图4所示。



  (1)串行接口程序
  串行接口程序是DSP通过16C2550向外部数据口进行数据接收、发送的程序,目的是进行数据传输。此程序包括串口发送接收程序及数据组织程序。发送和接收通过中断并发处理。整个串口发送程序在主循环中调用。其模块的流程为:
  发送 收到网络串口数据→打开数据口→中断发送;
  接收 中断接收→整理串口数据→发送到网络上去。发送和接收逻辑流程如图5所示。



  (2)网络通信接口程序
  网络接口程序是DSP通过CS8900A对系统的其他单元发送命令和接收信息的程序,目的是与系统的其他单元通信,接收与发送数据包和信令数据包。此程序包括网络数据接收程序、网络数据发送程序、数据组织程序。发送与接收服务程序流程如图6所示。



  结语
  该接口转换器已成功地应用于车内的数字式语音通信系统之中。结果表明,本方案成功地实现了数据的实时传输,可以给各种应用RS232串口进行数据传输的嵌入式系统的联网操作提供接口解决方案。本方案预留了升级扩展的功能。接入PCM编码器并对程序作出相应改动,可实现语音的数字化网络通信;接入A/D转换器和各种传感器可实现数据采集系统的联网。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-12-23 20:08 , 耗时 0.203894 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表