APP下载

多标准通信协议的可配置外设控制器设计

2015-03-07张晓濛严晓浪

计算机工程 2015年10期
关键词:外设状态机通信协议

李 俊,张晓濛,黄 凯,严晓浪

(浙江大学超大规模集成电路设计研究所,杭州310027)

多标准通信协议的可配置外设控制器设计

李 俊,张晓濛,黄 凯,严晓浪

(浙江大学超大规模集成电路设计研究所,杭州310027)

针对目前片上系统(SoC)低功耗低成本与接口协议多样化的特点,分析多种常用外设接口协议,提出一种多标准通信协议的可配置接口控制器架构。该架构设计支持硬件重构和软件配置,通过可配置状态机实现多标准通信协议。在SoC设计中控制器可取代多个外设接口,从而减少芯片面积和功耗,降低整体成本。实验结果表明,该控制器架构能兼容I2C,SPI,UART等常用外设接口,与I2C,SPI,UART三者总和相比,面积节省65.2%,功耗节省67.8%。

片上系统;面积;功耗;通信协议;控制器

DO I:10.3969/j.issn.1000-3428.2015.10.004

1 概述

随着集成电路制造工艺的不断进步与嵌入式应用的快速发展,片上系统(System on Chip,SoC)芯片在嵌入式领域的应用日益广泛[1]。标准化通信接口(I/O)作为设备之间信息交流的主要通道,是SoC芯片不可或缺的部分。为满足不同速度不同功能的通信需求,工业界和学术界均提出了众多接口协议,包括I2C,UART,SPI,PWM等。为了能够兼容多种接口协议从而扩大SoC的应用领域,SoC设计者通常在芯片中集成多个符合不同接口协议的IP模块,但这样明显增加芯片面积、功耗和封装引脚数,导致芯片成本的上升。因此,如何利用有限的面积、功耗和引脚数目兼容多种接口标准已成为嵌入式SoC产品开发的困难与挑战之一。

为了减少封装引脚,SoC设计者往往采用引脚复用技术[2],通过软件配置来实现不同接口之间的切换,在实际使用中每个时刻仅有一个外设接口处于工作状态,其余的冗余接口导致面积和功耗的浪费。文献[3]提出了一种兼容I2C和SPI的设计架

构。该架构通过软件配置,支持2种协议的宽频带通信以及协议之间的转换。文献[4]提出了一种兼容UART和SPI的架构,该架构能够同时兼容异步和同步传输。在一定程度上,这种设计能在兼容2种协议情况下有效减少SoC面积与功耗。但如果SoC需要与多种外设接口通信时,该设计无法提供有效的支持,在灵活性上有所欠缺。

针对目前SoC设计中通信接口的设计缺点,本文提出一种灵活可配置多标准通信接口设计架构。该架构通过硬件资源复用和引脚复用技术,由用户软件配置使单个IP模块能兼容多种接口协议(如UART,SPI,I2C,PWM等)。

2 通信协议分析

目前工业界通信接口协议具有多样化、复杂化和异构化的特点:通信协议按照时钟类型分为同步模式(Synchronous)和异步模式(Asynchronous),如SPI和UART;按照数据信息的传输方向分为双工、半双工和单工通信过程;按照传输设备的相互关系分为主从(M aster-Slave)模式和对等模式;按照通信速度可分为高速接口(USB2.0)和低速接口(I2C)。为了使一个接口IP模块在兼容多个通信标准同时尽量减少面积、功耗和引脚的开销,通信协议在以上几个方面必须具有相似性。下文通过不同协议的特点,从工作模式、通信数据格式等多方面来分析多种协议的特性与控制器支持的协议格式。

表1列举了常用接口IP协议包含的特性,根据应用协议,在接口的工作模式(1)下,协议可支持下述(2)~(6)等不同的特点。工作模式不但规范了协议特点,而且也确定了引脚复用,如图1所示。

表1 常用接口IP特性

图1 引脚复用

外设接口在不同的工作模式下需要不同的引脚,如同步工作模式下引脚需要有时钟信号而异步工作模式下引脚则无需时钟信号。因此,在定义可配置接口时需要考虑最大的引脚数目。在具体某种工作模式下,由于只有部分的引脚有作用,因此对引脚进行复用即可。具体的引脚复用情况需视接口的工作模式而定。参考I2C,SPI,UART,PWM等常用的外设接口,发现它们具有很大的共性,只要设计的IP模块支持以下功能就能兼容这些协议:(1)接口工作在主从模式或对等模式[5];(2)协议支持大端或小端;(3)协议支持同步模式或异步模式;(4)通信过程中支持双工,半双工或单工传输模式;(5)通信的波特率[6];(6)发送/接收缓存区(TX/RX FIFO)。

不同开关的组合可以确定不同的接口引脚,表2列举了兼容常用接口 IP时的开关组合情况。在多标准接口IP设计中,除了能够兼容各种接口的传输模式和引脚以外,还必须考虑传输的数据格式。通过传输数据格式的重构,实现可配置外设接口协议[7]。通过对几种常用接口协议的数据格式进行分析可知,数据格式可以拆分为3个基本组成部分:数据位,地址位,控制位。控制位根据需要可以具有多样性,主要包括:协议起始位和终止位,校验位,响应位等。由于某些应用场合对协议要求的特殊性以及协议控制位的多样性,可配置接口控制器为兼容常用标准及非标准协议增加了通用控制位。通用控制位的位宽及电平均可配置。因此,通过以上分析,本文中所提出的可配置接口控制器的协议需由4个部分组成:数据位,地址位,一般控制位,通用控制位,如图2所示。控制器在协议层对各协议各部分进行组合,从而可以兼容多种外设接口协议标准。

表2 引脚复用的应用情况

图2 控制器协议

根据上述分析,控制器若要兼容多种常用外设接口,则信号发生器必须能根据应用随时更改协议。信号发生器由状态机控制,故需要可配置状态机[8]来控制可配置协议。

3 可配置硬件架构设计

控制器需要支持多种外设接口协议,则可配置性是关键。硬件配置可以根据应用需求删除不必要的模式和实现逻辑,节省面积功耗;软件配置可以提高控制器的灵活性,达到兼容多种外设接口协议的目的。本文从硬件配置和软件配置2个部分考虑设计架构,如图3所示。控制器主要分成3个部分:控制器接口部分,主要是与AMBA总线,DMA控制器等通信的接口控制信号;状态机部分,包括可配置状态机和常用状态机,可配置状态机用于实现灵活可配置的协议,常用状态机用于实现常用外设接口协议,如I2C,SPI,UART等;信号发生器部分,由状态机控制的协议层信号部分,包括数据流的发送或接收、同步时钟信号等。实际使用过程中通过软硬件的协同配合能够达到兼容多种外设接口协议的目的。

图3 控制器设计架构

3.1 可配置硬件

外设接口的应用场合不同,则需实现的硬件模块也不相同,例如异步通信过程无需接口顶层的低频时钟来进行同步。因此,控制器设计需根据不同的应用场合实现不同的硬件模块,去掉不必要的硬件逻辑,减少面积功耗。如图3设计架构所示,控制器按照硬件可配置性主要可分为2个部分:(1)设计实现的基本框架,例如保存通信信息的状态寄存器等,该部分由确定的硬件逻辑实现;(2)与可配置协议相关的控制逻辑与状态转换逻辑,该部分逻辑的硬件实现由实际应用决定[9]。其中,硬件可配置部分主要包括状态机实现,控制器顶层低频时钟信号发生模块,发送/接收缓冲区深度,DMA控制接口等。

状态机实现主要包括可配置状态机和常用接口状态机两部分。应用过程中需选择一种状态机兼容接口协议。其中可配置状态机为软件可配置,该状态机控制信号发生器兼容常用的外设接口标准协议与非标准协议,通过引脚分时复用实现与多种外设接口的通信;常用接口状态机主要是针对应用较多的外设接口,如I2C,SPI,UART,PWM等,此时控制器只能兼容特定的外设接口协议。通过2种状态机的划分以及实现,该控制器能够很好地兼顾灵活性并减少面积功耗。另外,此设计还可以根据通信协议支持同步或异步来确定是否实现顶层的低频时钟信号,根据应用场合确定发送/接收缓冲区深度,以及根据需求确定是否实现DMA控制接口。硬件可配置能够最大限度地利用硬件资源,减少不必要的资源浪费。

3.2 可配置软件

在硬件架构的基础上,使用者通过软件配置能够更好地操作控制器兼容多种外设接口协议。传统的状态机有确定的输入输出,确定的状态以及状态转换关系[10]。而可配置状态机则可通过软件配置确定不同的状态以及各状态间的转换关系,实现状态机多样化,兼容多种接口协议。如图4所示,可配置状态机的实现主要由两部分组成:状态转换逻辑和输入控制逻辑[11]。状态转换逻辑确定可配置状态机的状态以及状态之间的跳变关系;而输入控制逻辑直接控制状态的跳变时刻。

图4 可配置状态机

图中通过I2C举例说明了可配置状态机的工作原理。状态转换逻辑确定兼容I2C协议时包含的状态及状态机之间跳变关系。在当前状态根据转换逻辑编码获取下一状态。图中JUMP-4和JUMP-8状态可根据当前收到数据不同而指定不同的下一状

态,下一状态可以是状态转换逻辑中的任意一个状态;而其余的状态均是对I2C协议进行数据处理的状态。状态机跳变的时刻由寄存器存储的计数器控制,计数器达到特定的数值则状态发生跳变。状态转换逻辑本质上是一个查找表(Look Up Table)[12]。查找表中存储了状态机信息,每个状态信息由转换逻辑编码。查找表中存储的状态包括两部分:数据处理状态和跳变状态。在数据处理状态,控制器处理协议中的相关信息,包括发送/接收数据或者检测数据流。协议信息处理完之后,状态机的下一个状态由查找表的下一个状态决定。与之对应,跳变状态并不处理数据,而是确定当前状态的下一状态,下一状态可以是查找表中的任意一个状态。跳变状态能够很好的拓展协议的灵活性,使控制器能够兼容更多地标准/非标准接口协议。

输入控制逻辑主要由两部分组成:寄存器(register)和计数器(counter)。与单一协议不同,控制器需要支持多种协议,因此其必须存在多个计数器以确定协议各部分的长度。每个计数器与状态机一一对应,在特定的状态下,相应的计数器才有效。寄存器存储了多个计数器的值,同时也存储了一些协议的基本信息,例如,协议支持大端还是小端,是否支持奇偶校验等。寄存器和计数器共同作用,增加了控制器的灵活性。

4 实验结果与分析

可配置控制器根据不同的应用实现不同的硬件设计。基于杭州朔天微系统平台,选取 CK803[13]作为主控处理器,本文介绍了不同配置情况下控制器的实现方式。

如图5所示,根据用户配置产生IP与SoC的过程:(1)在GUI界面中用户规范整个SoC设计,包括添加的IP模块、各IP模块的配置、模块之间的互联等;(2)design parser工具对GUI界面进行解析,并将获得信息存储在 design.xm l文件中。(3)将design.xm l文件备份后,根据该文件配置SoC平台并从IP库中拷贝IP原始代码。(4)IP-GEN工具根据每个IP的配置对IP原始代码进行修改,修改后的IP挂载于AMBA2.0总线上[14]。根据上述过程可以快速获得不同配置下的IP设计与SoC系统设计。

在不同配置下实现的控制器面积功耗也不相同。表3列出了控制器模式下的面积功耗及其比较结果,其中,pclk=50 MHz。在SM IC13工艺,内置的发送和接收缓冲区深度为16的前提条件下,本文将可配置外设接口控制器与Syposysy DesignWare的接口IP进行面积和功耗对比。与单一的外设接口相比,控制器的面积功耗均有增加,但考虑到控制器能够兼容多种外设,其整体的面积功耗与 I2C,SPI,UART之和相比分别减少了65.2%和67.8%,在SoC应用中能够达到更高的能效比。

图5 控制器实现方式

表3 面积功耗比较

5 结束语

本文描述一种可配置外设接口控制器的ASIC实现方法,并将其集成于 SoC中进行性能分析。该控制器能够支持常用的外设接口协议,并可由用户配置。在相同条件下,将本文提出的控制器和其他外设接口的面积功耗相比较,本文控制器架构都具有较大优势。因此,在SoC中用可配置控制器代替外设接口,可以减少整体的芯片面积和功耗。

[1] Blaner B,Czenkusch D,Devins R,et al.An Em bedded Pow er PCTMSoC for Test and Measurement Applications[C]//Proceedings of the 13th Annual IEEE International on ASIC/SOC Conference.Arlington,USA:IEEE Press,2000:204-208.

[2] Integrated M.MAX14850 Six-channel Digital Isolator[EB/OL].(2014-12-08).http://datasheets.maximintegr ated.com/en/ds/MAX14850.pdf?utm-source=eefocus &utm-medium=banner&utm-content=Q115AFE Solutions &utm-campaign=Minisite&utm-term=MAX14850.

[3] Bacciarelli L,Lucia G,Saponara S,et al.Design,Testing and Prototyping of a Software Programmable I2C/SPI IP on AMBA Bus[C]//Proceedings of the 2nd IEEE Microelectronics and Electronics Conference.Otranto,Italy:IEEE Press,2006:201-209.

[4] Blessington T P,Murthy B B,Ganesh G V,et al. Optimal Implementation of UART-SPI Interface in SoC[C]//Proceedings of 2012 International Conference on Devices,Circuits and System s.Coimbatore,India:IEEE Press,2012:673-677.

[5] Yeung M K H,Yu K K.Energy Efficient Media Streaming Inwireless Hybrid Peer-to-Peer Systems[C]// Proceedings of IEEE International Symposium on Parallel and Distributed Processing.Miami,USA:IEEE Press,2008:1-11.

[6] 孙令明,张爱春,孙晓东,等.通信信号波特率的盲估计[J].长春理工大学学报:自然科学版,2010,33(3):75-79.

[7] Yun Chang-Yu,Jhang Kyoung-Son.An Interface Protocol Component Modeling Language[C]// Proceedings of the IEEE AISC/SOC’02.Rochester,USA:IEEE Press,2002:456-460.

[8] Angelov U,Ke Xu,Guo Yu,et al.Reconfigurable State Machine Component for Em bedded Applications[C]// Proceedings of the 34 th Euromicro Conference on Software Engineering and Advanced Applications. Parma,Spain:IEEE Press,2008:51-58.

[9] 陈 超,曾晓洋,章倩苓,等.一种新型硬件可配置公钥制密码协处理器的VLSI实现[J].通信学报,2005,26(1):11-16.

[10] Rietsche G.State Assignment for Finite State Machine Using T Flip-flops[C]//Proceedings of Design Automation Conference with EURO-VHDL.Ham burg,Germany:IEEE Press,1993:396-401.

[11] Carlos J,Ramos P,Verhelst M,et al.Flexible,Ultra-low Power Sensor Nodes Through Configurable Finite State Machines[C]//Proceedings of the 8th International Workshop on Reconfigurable and Communication-centric System s-on-Chip.Darmstadt,Germany:IEEE Press,2013:1-7.

[12] Mitkas P A,Irakliotis L J,Beyette F R,et al. Optoelectronic Look-up Table Using VCSEL-based Logic[C]//Proceedings of Laser and Electro-Optics Society Annual Meeting.San Jose,USA:IEEE Press,1993:71-72.

[13] Zhou Hang.CK803 Introduction[EB/OL].(2012-12-08).http://www.c-sky.com/product.php?typeid=84.

[14] AMBA Specification Rev 2.0[EB/OL].(2012-12-08).http://infocenter.arm.com/help/index.jsp?topic=/ com.arm.doc.set.amba/index.htm l.

编辑索书志

Design of Reconfigurable Peripheral Controller with Multiple Standard Communication Protocol

LI Jun,ZHANG Xiaomeng,HUANG Kai,YAN Xiaolang
(Institute of VLSI Design,Zhejiang University,Hangzhou 310027,China)

Aiming at design features of System on Chip(SoC)with low power consumption,low cost and variety of the interface protocol,multiple commonly used peripheral interface protocols are analyzed,and an architecture of the reconfigurable peripheral controller with flexible multiple communication protocols is proposed.The design supports hardware reconfiguration and software configuration.Multiple standard communication protocols are supported with the configurable finite state machine.The controller can replace multiple peripheral interfaces in the design of SoC,which results in less area and power consumption and reduces the overall cost of the chip.Experimental results show that the architecture of controller is compatible with the commonly used peripheral interface such as I2C,SPI,UART,etc.It achieves 65.2%of area occupation savings and 67.8%of power consumption savings when com pared with the combination of I2C,SPI and UART.

System on Chip(SoC);area;power consumption;communication protocol;controller

李 俊,张晓濛,黄 凯,等.多标准通信协议的可配置外设控制器设计[J].计算机工程,2015,41(10):14-19.

英文引用格式:Li Jun,Zhang Xiaomeng,Huang Kai,et al.Design of Reconfigurable Peripheral Controller with Multiple Standard Communication Protocol[J].Computer Engineering,2015,41(10):14-19.

1000-3428(2015)10-0014-06

A

TP391

国家自然科学基金资助项目(61100074);国家电网智能电网研究院基金资助项目“新一代智能电网片上系统芯片关键技术研究”(SGRI-WD-71-13-014)。

李 俊(1990-),男,硕士研究生,主研方向:ASIC芯片设计,片上系统设计;张晓濛,博士;黄 凯,副教授;严晓浪,教授、博士生导师。

2014-11-06

2014-12-09E-m ail:lijunzjdy@126.com

猜你喜欢

外设状态机通信协议
基于有限状态机的交会对接飞行任务规划方法
基于Z-Stack通信协议栈的红外地温采集电路设计
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介
Microchip推出具备双ADC外设的全新器件,扩展其低成本8位PIC®单片机产品线
FPGA设计中状态机安全性研究
基于反熔丝FPGA的有限状态机加固设计
外设天地行情
基于VHDL的一个简单Mealy状态机