查看: 2600|回复: 3

基于SOPC的嵌入式高速串口设计

[复制链接]

该用户从未签到

发表于 2008-4-8 20:14:15 | 显示全部楼层 |阅读模式
分享到:
高速串口数据通信在现代通信系统和控制系统中应用日益广泛,较之传统的基于RS232传输标准,具有更高的可靠性,更强的兼容性,更快的传输速率。   由于不同的串口数据通信采用的方式各不相同,有异步模式、同步模式,而且数据传输格式也各不相同,有的采用传统SCI传输格式,有的采用自定义数据格式,有的采用帧长度固定方式,有的采用帧长度可变方式等,而且每一帧的数据长度可以从10bit到几千bit,所以高速串口的设计要求不同其实现方案也不同。本文重点介绍基于SOPC(可编程系统芯片)的高速异步串口通信系统的设计方法。
  目前的嵌入式处理器种类繁多。Altera 公司的Nios II处理器是用于可编程逻辑器件的可配置的软核处理器,与Altera 的FPGA 组合,具有很高的性价比。
  总体设计及系统架构
  高速串口数据通信系统采用双线平衡驱动,半双工同步传输或单向广播同步传输,线路传输速率为5Mbits/s,总线连接关系如图1所示。

  系统中主机模块能调度总线上的数据帧收发,保持数据通信的实时性,数据传输时由主机模块发送数据帧。数据帧若为半双工同步传输帧,则数据帧只对其中一个外围模块有效,同时当外围模块收到数据后,应发送相应的应答信号;数据帧若为单向广播同步传输帧,则数据发向所有外围模块,而不需要任何应答信号。
  系统以固定的数据帧格式传送数据,不同于传统的SCI格式,帧长为7字节(共56bits),由2字节引导序列、1字节地址,3字节数据、1字节帧结束序列组成。帧的发送顺序:字节内低位先发,多字节内低字节先发。
  无论是主机模块还是外围模块均采用相同的串口通信设计,串口通信设计包含两个主要部分:通信接口部分和管理控制部分。通信接口部分主要完成数据帧结构的封装和解封装,并通过帧头的分析识别进行时隙定位,同时能让系统内的每一终端实现多机共享通信资源的通信机制,该模块由VHDL语言实现。管理控制部分由NiosII软核实现的,为了能在串行通信方式上实现时分复用,进而实现多设备同时通信,系统设计出一套完整而独特的控制帧格式,并通过这些帧格式控制实现建立连接,撤销连接和相应管理。因此,利用NiosII的特点,形成特殊的帧头判决、同步时钟提取、控制信息的判断、收发模式变换,这些都依赖专用模块的实施并靠高速执行速度来适应多终端下的高传输速率。
  鉴于以上系统架构和设计要求,串口通信采用模块化设计思路和方法,模块结构如图2所示。
  NiosII软核CPU开发工具SOPC Builder提供简洁的操作方式,可将用户的数字电路模块封装成标准的NiosII软核外设模块,这使得NiosII软核可以很容易地与用户逻辑结合,构成功能更加强大的SOC系统。在高速串口数据通信的设计中,既需要一个高速的处理器作为系统的控制管理核心,又有大量用户自定义的数字电路功能模块需要在FPGA芯片中实现,因此,采用FPGA芯片和NiosII软核CPU作为高速串口数据通信的硬件平台是一个优化的选择。
  通信接口模块设计
  通信接口模块设计采用VHDL语言设计,由两部分组成:数据帧发送电路和数据帧接收电路。数据帧发送电路将NiosII 要发送的数据、地址按照数据帧格式进行组帧,然后同步传输到总线上,该部分设计的关键是并串转换、合并数据和同步控制,数据的发送率为5Mbits/s,而工作时钟fclk为25MHz,对fclk进行5分频,得发送时钟ftxd为5MHz。当有数据要发送时,每一个即ftxd的上升沿到来时传送数据,先发送帧头2字节引导序列,即“1110011100111110”,然后发送串行数据。由于NiosII的内部数据宽度通常是32位,故将1字节地址和3字节数据由软件将其合并成一组32位宽度的数据,合并时地址在低位,数据在高位,然后将要发送的32位数据缓存在一个32位宽度的矢量区间,引导序列结束后从低位到高位依次发送数据,即data[0]、data[1]……data[31],最后发送结束标志字节“1110011”,发送结束。
  接收电路的设计重点考虑的问题是如何准确判断到数据帧头,然后解析地址,数据的速率为5Mbit/s,FPGA的工作时钟fclk为25MHz,参考RS-232串口通信的设计思想,用高倍时钟对接收的数据进行采样,即每5个fclk采样一个bit,此处可以先设计一个5进制计数器,每一次计数,保存采集的数据,在第2、3、4次采样时,若所采到的值相同,则判断这个bit为当前的采样值。在判断2字节引导序列时采用状态机设计法和序列检测器的设计思想,判断第1个bit是否为‘0’,如果是‘0’则继续判断下一bit是否为‘1’,如果是‘1’则一直等待在第1状态直到判断到‘0’才跳转,判断状态机如图3所示。
回复

使用道具 举报

该用户从未签到

发表于 2008-4-13 17:23:59 | 显示全部楼层

RE:基于SOPC的嵌入式高速串口设计

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-4-13 17:25:38 | 显示全部楼层

RE:基于SOPC的嵌入式高速串口设计

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-5-5 09:58:04 | 显示全部楼层

RE:基于SOPC的嵌入式高速串口设计

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2025-1-5 10:30 , Processed in 0.142128 second(s), 21 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.