0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA与USB2.O控制器的IP-BX电话应用系统设计

电子设计 来源:郭婷 作者:电子设计 2018-12-30 09:34 次阅读

通用串行总线USB(Universal Serial Bus)是应用于PC领域的接口技术,已得到广泛应用。USB2.0已成为目前电脑中的标准扩展接口。本系统设计的目的在于为公共交换电话网络(PSTN)和PC机之间提供一个数字接口,设计中PC机是主机,基于FPGA嵌入式系统是USB设备。该系统是IP-PBX的简化系统,大量工作由PC的服务器完成,而这里重点介绍以FPGA为控制核心的USB接口设计。

1 系统结构设计

该系统通过TRM(Telephone Response Module)和PC服务器实现PSTN网络和Internet网络之间自由、高效通话。图l为整个系统结构示意图。

基于FPGA与USB2.O控制器的IP-BX电话应用系统设计

系统工作过程:当有来电时,DAA向FPGA申请中断。FPGA收到中断后,使用USB的中断传输向主机报告有外接来电,则PC的应用软件会提示用户选择摘机或拒绝。摘机后,FPGA在接收到命令后就会接通电话,然后语音数据通过USB的同步传输进行双向传送。当用户向外拨号时,其过程与来电时的情况是相同的。

2 系统硬件模块设计

2.1系统硬件框图

本设计采用FPGA作为核心控制器件,其控制对象是USB2.0接口器件EZ-USB FX2 CY7C68013A-56。图2为EZ-USB器件工作在Slave FIFO模式下时FX2 USB和FPGA的典型电路连接图。

基于FPGA与USB2.O控制器的IP-BX电话应用系统设计

2.2 FPGA和USB简介

设计中的核心控制器件FPGA选用Ahrea公司的EP2C8Q208C8,而USB设备器件则选用Cypress公司的CY7C68013A-56。EP2C8Q208C8是Ahera Cyclone II系列器件中的一种,Cyclone II FPGA是基于Stratix II的90 nm工艺生产的低成本FPGA。Cyclone II FPGA的应用主要定位在终端市场,如消费类电子、计算机、工业和汽车等领域。EP2C8Q208C8内部有2个锁相环(PLL)和8个全局时钟网络,8 256个逻辑单元(LE)个,36个M4K RAM,18个乘法器模块,可用I/O数138个。EP2C8Q208C8具有低成本、高性能、低功耗和对IP-PBX系统的可扩展性(足够多的I/O接口)的优点,因此这里选择该器件作为系统的控制器件。

CY7C68013A-56器件是第1个包含USB2.0的集成微控制器,其内部集成有1个增强型的8051,1个智能USB串行接口引擎(SIE),1个USB数据收发器,3个8位。I/O、16位地址线、8.5 KB RAM和4 KB的FIFO等。增强型8051内核完全与标准805l兼容,而性能可达到标准805l的3倍以上。图3为CY7C68013A-56的结构框图。

基于FPGA与USB2.O控制器的IP-BX电话应用系统设计

CY7C68013A器件在数据传输时利用4 KB的FIFO,包含7个端点:EPOIN/OUT,EPlIN,EPlOUT,EP2,EP4,EP6,EP8。其中EPO、EPIIN和EPlOUT是3个64 B的缓冲端点,只能被固件访问,EP0是默认的数据输入输出端口缓存,默认工作于控制传输,EPlIN和EPlOUT是独立的64 B缓存,可以配置成块传输、中断传输或同步传输。端点2、4、6、8是大容量高宽带的数据传输端点,可配置为各种带宽以满足实际需求。端点2、6能配置成每帧成512 B或l 024 B,并可配置为2、3、4级,则EP2,EP6最大能被配置为4 KB的缓存;端点4、8则能配置为每帧512 B的缓存。

3 系统软件设计

3.1 USB Firmware设计

由于设计中使用FPGA控制USB设备进行语音电话通信,所以在USB部分使用3种USB传输模式:控制传输、中断传输、等时传输。控制传输用于实现设备枚举主机的标准请求以及厂商自定义请求;中断传输用于实现设备对主机的唤醒,是唯一的设备主动向主机发送数据的传输方式;等时传输用于实现语音数据的双向同步传输。USB Firmware设计重点是语音的通信段。

CY7C68013A具有PORTS、Slave FIFO、GPlF共3种工作模式。PORTS模式是最基本的数据传输方式,其数据传输需CPU直接参与,适于传输速率要求不高的场合;GPIF模式是主机方式,内部主机控制端点FIFO;Slave FIFO模式是从机方式,外部控制器,如FPGA、DSP。应用中使用异步FIFO方式,采用内部48 MHz时钟,自动方式,而固件程序的编写则以Cypress公司提供的固件程序框架为基础,在其初始化函数中添加自己的配置代码。

在整个系统中,CY7C68013A的固件主要完成以下工作:初始化USB器件;作为USB接口与主机通信并传输数据;利用CY7C68013A器件的Slave FlFO接口控制USB器件和外部控制器之间的数据传输。因此同件主程序比较复杂,除了上面的TD_lnit()初始化外,还需要大量函数,但基本结构相对简单,包括3个过程:USB控制器的初始化;主函数,包括处理标准设备请求的代码;中断处理,包括处理各种中断的程序代码。图4为同件主程序流程。

基于FPGA与USB2.O控制器的IP-BX电话应用系统设计

3.2 USB驱动程序

USB系统软件由主机中的软件和设备同件构成。USB主机中的软件主要包括USB设备驱动(USBDD)、USB总线驱动(USBD)和USB主控制器驱动(HCD)。

USB设备驱动程序(或客户驱动程序)处于最顶层,它支持特定设备类的驱动,负责与其对应的USB设备进行通信和读写控制,实现各个USB设备特殊的功能应用。连接USB设备的每种类型的功能单元都必须具有客户驱动程序。客户驱动程序把USB设备看作是一个可被访问的端点的集合。USB设备可以被控制并与其功能单元通信。USB设备驱动程序通过I/O请求包(IRP)向USB总线驱动程序发送请求。这些请求包将一个给定的传输初始化。这种传输可以来自于一个USB目标设备或发送到USB设备。

USB总线驱动(USBD)是在主机控制器驱动和USB设备驱动之间的模块,它对应USB协议的USBD,在Windows系统中由USBD.SYS模块提供。它是在某一操作系统上对USB总线和协议提供支持的软件,独立于USB设备和USB设备驱动,并对它们进行控制和提供统一编程接口。

USB主控制器驱动程序(HCD)处于最底层,它负责对主机控制器进行抽象和对USB提供低级支持。

3.3 PC端的软件设计

PC端的软件设计采用面向对象程序设计,分为核心类(包括Provider,Data,Net)和应用类(包括UI,Call,Record)。其中核心类提供对硬件、操作系统和网络环境的支持,应用类在核心类的基础上提供对用户操作的支持。Provider类定义对USB设备的读写操作,提供读取数据方法(readusb())和写数据方法(writeusb());Data类包括地址数据(Address)、音频数据(Audio)和控制数据(Command)的定义,并提供数据的分解方法(Decompose())和组合方法(Compose());Net类提供对网络的支持,包括网络协议的选择和数据的接收与发送。UI类提供对用户界面的支持,包括窗口、对话框等,实现基本用户框架与应用入口;Call类提供通话功能;Record类则提供电话录音功能;根据不同应用要求,可扩展其他应用类。具体结构如图5所示。

基于FPGA与USB2.O控制器的IP-BX电话应用系统设计

4 结束语

USB灵活的接口和可编程特性可简化外部硬件的设计,提高系统可靠性。而USB2.O控制器CY7C68013A也广泛应用于许多数据传输领域。FPGA已成为通信、计算机、消费类电子产品等领域的基础器件。这里所介绍的USB设备就是一个基于FPGA的嵌入式系统,该系统软硬件都具有模块化的特性,易于改造成其他应用场合的语音控制系统(DAA除外)。该设计的应用可节省大量的人力、物力。具有较大的推广意义和使用价值。

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

    关注

    1626

    文章

    21665

    浏览量

    601797
  • 控制器
    +关注

    关注

    112

    文章

    16197

    浏览量

    177392
  • usb
    usb
    +关注

    关注

    60

    文章

    7891

    浏览量

    263972
  • 服务器
    +关注

    关注

    12

    文章

    9017

    浏览量

    85182
收藏 人收藏

    评论

    相关推荐

    基于USB2.O的CMOS图像采集系统的设计

    ;><strong>基于USB2.O的CMOS图像采集系统的设计<br/></strong><
    发表于 12-16 11:04

    绘制USB2.O设备接口差分线的经验

    ①在元件布局(PCB Layout)时,应将USB2.O芯片放置在离地层最近的信号层,并尽量靠近USB插座,缩短差分线走线距离。②差分线上不应加磁珠或者电容等滤波措施,否则会严重影响差分线的阻抗。
    发表于 05-23 08:54

    基于FPGAUSB2.0控制器设计

    /A。1 控制器结构原理USB2.0控制器结构框图如图2所示。控制器主要由两个部分组成,其一为与外设的接口,另一个是内部协议层逻辑PL(Pr
    发表于 06-29 07:30

    USB设备控制器IP Core 的设计与实现

    本文介绍一款USB 设备控制器IP CORE 的设计与实现。论文首先介绍了USB 设备控制器的设计原理,模块划分及每个模块的功能。然后介绍了
    发表于 08-06 11:39 8次下载

    MCU USB设备控制器IP核的设计

    用硬件描述语言verilog HDL 设计实现了一种MCU&USB 设备控制器IP 核。论文首先简要介绍了设计的背景,重点对自主研发的将MCU&USB
    发表于 01-20 11:44 22次下载

    基于FPGAUSB2.0控制器设计

    摘要:介绍了一种用VHDL设计USB2.0功能控制器的方法,详术了其原理和设计思想,并在FPGA上予以实现。 关键词:USB VHDL FPGA
    发表于 06-20 13:26 1645次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>USB</b>2.0<b class='flag-5'>控制器</b>设计

    MCU/USB设备控制器IP核的设计

    MCU/USB设备控制器IP核的设计  1 引言   在传统的计算机系统上常采用串口(如RS232)和并口连接外围设备,但串口和并口都存在着通信速度 慢
    发表于 12-08 11:11 716次阅读
    MCU/<b class='flag-5'>USB</b>设备<b class='flag-5'>控制器</b><b class='flag-5'>IP</b>核的设计

    可视电话控制器是什么意思

    可视电话控制器是什么意思 控制器是整个可视电话系统控制核心。在
    发表于 03-06 16:53 1151次阅读

    FPGA的嵌入式系统USB接口设计

    FPGA的嵌入式系统USB接口设计 摘要:设计基于FPGAIP-BX电话应用
    发表于 04-03 10:52 1904次阅读
    <b class='flag-5'>FPGA</b>的嵌入式<b class='flag-5'>系统</b><b class='flag-5'>USB</b>接口设计

    FPGA设计的电话远程控制系统

    本设计采用FPGA 作为控制器,通过电话网络传输密码与指令操作码,实现有用户权限的远程操作。具有可配置性强,控制信号多,系统可靠稳定等特点。
    发表于 12-19 14:32 44次下载
    <b class='flag-5'>FPGA</b>设计的<b class='flag-5'>电话</b>远程<b class='flag-5'>控制系统</b>

    基于FPGA的SOC外部组件控制器IP的设计

    本文侧重于介绍IP 模块中组件控制器的设计和实现。一个基于FPGA 的LCD 控制器设计作为例子被介绍。这个组件控制器设计属于固核
    发表于 12-22 14:00 1307次阅读
    基于<b class='flag-5'>FPGA</b>的SOC外部组件<b class='flag-5'>控制器</b><b class='flag-5'>IP</b>的设计

    基于FPGA的SD卡控制器IP

    基于FPGA的SD卡控制器IP,以验证可用。
    发表于 11-06 09:50 10次下载

    DDR2SDRAM控制器IP功能测试与FPGA验证_陈平

    DDR2SDRAM控制器IP功能测试与FPGA验证_陈平
    发表于 01-07 21:45 3次下载

    基于处理实现USB 0TG控制器芯片的IP核应用设计

    OTGl.Oa补充规范对USB2.O进行的最重要扩展是其更具节能性、电源管理,并允许设备以主机和外设2种形式工作。OTG有两种设备类型:两用 OTG设备(dual—role 0TG device
    发表于 09-15 17:32 949次阅读
    基于处理<b class='flag-5'>器</b>实现<b class='flag-5'>USB</b> 0TG<b class='flag-5'>控制器</b>芯片的<b class='flag-5'>IP</b>核应用设计

    基于AT91SAM7X微控制器实现数据采集系统的设计

    本文设计的基于AT91SAM7X的多路USB2.O数据采集系统主要由6部分组成,如图1所示,分别是输入信号接口模块、多路信号放大模块、信号调理模块、数据采集处理模块、USB2.O接口模块和上位机模块
    的头像 发表于 03-20 09:54 4371次阅读
    基于AT91SAM7X微<b class='flag-5'>控制器</b>实现数据采集<b class='flag-5'>系统</b>的设计