SPI控制器及其通信方法技术

技术编号:11811675 阅读:91 留言:0更新日期:2015-08-02 11:03
本发明专利技术公开了一种SPI控制器。该控制器包括:接口模块(1)、寄存器组模块(2)、时钟分频模块(3)、发送数据缓冲器(4)、接收数据缓冲器(5)、延时发送模块(6)、发送/接收控制逻辑模块(7)和中断产生模块(8)。另外,本发明专利技术公开了一种利用所述SPI控制器通信的方法。本发明专利技术可以实现延时发送控制功能,保证了接口操作的高速性,也满足了慢速接口器件的操作时序的要求。

【技术实现步骤摘要】

本专利技术涉及外围串行总线SPI接口,尤其涉及SPI控制器及利用该控制器实现的通信方法。
技术介绍
随着超大规模集成电路的发展,SOC (System on Chip,系统级芯片)设计越来越复杂。IP核(Intellectual Property core)是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。IP核具有规范的接口协议,良好的可移植性与可测试性,为系统开发提供了可靠的保证。研宄IP复用技术具有重要意义。SPI接口是Motorola公司推出的一种同步串行接口技术。SPI具有结构简单、通讯速度快等显著优点,可以实现CPU与各种外围设备(如FLASH、IXD显示驱动器、网络控制器、AD转换器、DA转换器和其他CPU等)以串行方式进行通信。如果能将CPU的各种外围设备视为不同的IP核,视为各种IP核的设备基于SPI协议与CPU进行通信,将大大简化芯片的设计难度。但是目前SPI接口设计还不够灵活,一是当接口传输的速度相对于CPU较慢时,接口和CPU的操作时序就会不一致,导致SPI接口适用范围比较窄;二是在通信过程中很容易出现数据传输错位和丢失的错误,得到的数据并不是实际需要的数据。
技术实现思路
针对现有技术存在的缺陷,为了既保证接口操作的高速性,也满足了慢速接口器件的操作时序的要求。根据本专利技术的一个方面,提出了一种SPI控制器,所述控制器分别与CPU和外部串行设备相连,所述控制器包括:接口模块、寄存器组模块、时钟分频模块、发送数据缓冲器、接收数据缓冲器、延时发送模块、发送/接收控制逻辑模块、中断产生模块,其中,接口模块配置为根据总线的时序对寄存器组模块读写,以按逻辑完成接口模块与CPU之间的通信;寄存器组模块配置为通过接口模块读写操作,完成所述控制器的控制参数的配置;时钟分频模块配置为根据寄存器组模块中的预分频系数和再分频系数产生串行输出时钟;发送数据缓冲器配置为缓存通过接口模块写入的待传输数据,直到外部串行设备通过发送/接收控制逻辑模块将所述待传输数据读出;接收数据缓冲器配置为用于缓存来自发送/接收控制逻辑模块从外部串行设备发送的数据,直到CPU通过接口模块将所述发送的数据读出;中断产生模块配置为根据接收数据缓冲器的状态信息产生接收数据缓冲器的服务中断、接收数据缓冲器的溢出中断,根据发送数据缓冲器的状态信息产生发送数据缓冲器的服务中断。本专利技术的SPI控制器能够满足不同串行外围设备接口的时序要求,使得主机可以和连接有不同处理速度的串行外围设备快速通信,适应范围更广泛。在一些实施方式中,寄存器组模块包括控制寄存器、数据寄存器、校验控制寄存器、中断控制寄存器、延时发送寄存器、DMA (Direct Memory Access,直接内存访问)控制寄存器、状态寄存器和时钟分频寄存器。在一些实施方式中,延时发送模块包括指令解析模块和倒计时计数器模块,所述指令解析模块配置为解析来自寄存器组模块的延时发送寄存器、发送数据缓冲器、发送/接收控制逻辑模块的命令,并把命令解析结果发送给倒计时计数器模块。所述倒计时计数器模块配置为根据指令解析模块命令解析结果,对发送数据缓冲器中数据发送到间间隔进行控制。在一些实施方式中,发送/接收控制逻辑模块包括:发送控制逻辑模块和接收控制逻辑模块,发送控制逻辑模块包括:CRC(Cyclic Redundancy Check,循环冗余校验)编码模块、并转串逻辑模块和传输结束控制模块,接收控制逻辑模块包括:数据缓存区模块、串转并逻辑模块、CRC校验模块和接收超时控制模块。在一些实施方式中,所述的控制器,还包括:DMA接口,设置为通过接口模块与DMA交互数据。根据本专利技术的另一个方面,提出了一种利用SPI控制器通信的方法,包括以下步骤:I)将上述控制器分别与CPU与外部串行设备通信连接;2)基于CPU和外部串行设备的接口时序,设置所述控制器的延时的控制参数;3)所述控制器接收CPU的并行数据,并根据所述延时的控制参数将所述并行数据转化为串行数据后发送给外部串行设备;4)所述控制器将接收的外部串行设备的串行数据,并将所述串行数据转化成并行数据,以供CPU接收。在一些实施方式中,上述步骤2)还包括:设置所述控制器的校验参数;上述步骤3)还包括:所述控制器根据所述校验参数,将发送数据缓冲器中的数据发送到发送控制逻辑模块中的CRC编码模块进行CRC编码,生成第一 CRC编码,再将所述数据和第一 CRC编码一并转换成串行数据输出至所述外部串行设备;上述步骤4)还包括:所述控制器根据所述校验参数,将外部串行设备的数据和所述第一 CRC编码一并发送到接收控制逻辑模块中的串转并逻辑模块,同时将串行数据的数据部分发送到接收控制逻辑模块中的CRC校验模块,并在CRC校验模块内进行CRC编码,生成第二 CRC编码,所述数据和所述第一 CRC编码经过串转并逻辑模块转换成并行数据后,数据部分发送到数据缓冲区模块,同时第一 CRC编码发送到CRC校验模块;比较所述第一 CRC编码和所述第二 CRC编码,当二者一致时,将所述数据缓冲区模块中的数据发送到接收数据缓冲器以供CPU接收,否则产生CRC错误中断。在一些实施方式中,所述控制器的控制参数是通过对寄存器组模块的读写操作,对所述控制器的工作模式、移位时钟的极性、移位时钟的相位、时钟频率、数据长度、中断功能、DMA功能、延时发送控制、CRC校验使能参数中的至少一者进行设置。本专利技术的提出的SPI控制器支持可编程的延时发送控制功能和CRC校验功能,保证了接口操作的高速性,也满足了慢速接口器件的操作时序的要求,并且也能保证数据传输的准确性和可靠性,适应范围更广泛。【附图说明】图1为本专利技术一实施方式的SPI控制器的结构示意图;图2为本专利技术一实施方式的SPI控制器的延时发送寄存器的帧格式示意图;图3为本专利技术一实施方式的SPI控制器的延时发送寄存器各个位域功能示意图;图4为本专利技术一实施方式的SPI控制器的发送控制逻辑模块和与其连接的其它模块的结构示意图;图5为本专利技术一实施方式的SPI控制器的接收控制逻辑模块和与其连接的其它模块的结构示意图;图6为本专利技术一实施方式的SPI控制器发送数据的流程示意图;图7为本专利技术一实施方式的SPI控制器接收数据的流程示意图;图8为本专利技术一实施方式的SPI控制器的接口时序示意图。【具体实施方式】下面结合附图对本专利技术作进一步详细的说明。图1为本专利技术一实施方式的SPI控制器的结构示意图。如图1所示,SPI控制器包括接口模块I (该接口模块可以根据总线类型,例如APB(Advanced Peripheral Bus,外围总线)或者AHB (Advanced High performance Bus,系统总线)等协议,配置为APB接口模块、AHB接口模块等形式)、寄存器组模块2、时钟分频模块3、发送数据缓冲器4、接收数据缓冲器5、中断产生模块8、DMA接口 9这几个常规接口模块,以及功能模块:延时发送模块6、发送/接收控制逻辑模块7 (该模块包括发送控制逻辑模块71和接收控制逻辑模块72)。SPI控制器通过接口模块I与CPU 11 (本实施例中的CPU也可以由单片机或者SOC芯片本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN104809094.html" title="SPI控制器及其通信方法原文来自X技术">SPI控制器及其通信方法</a>

【技术保护点】
一种SPI控制器,所述控制器分别与CPU(11)和外部串行设备(10)相连,所述控制器包括:接口模块(1)、寄存器组模块(2)、时钟分频模块(3)、发送数据缓冲器(4)、接收数据缓冲器(5)、延时发送模块(6)、发送/接收控制逻辑模块(7)和中断产生模块(8),其中,接口模块(1)配置为根据总线的时序对寄存器组模块(2)读写,以按逻辑完成接口模块(1)与CPU(11)之间的通信;寄存器组模块(2)配置为通过接口模块(1)读写操作,完成所述控制器的控制参数的配置;时钟分频模块(3)配置为根据寄存器组模块(2)中的预分频系数和再分频系数产生串行输出时钟;发送数据缓冲器(4)配置为缓存通过接口模块(1)写入的待传输数据,直到外部串行设备(10)通过发送/接收控制逻辑模块(7)将所述待传输数据读出;接收数据缓冲器(5)配置为用于缓存来自发送/接收控制逻辑模块(7)从外部串行设备(10)发送的数据,直到CPU(11)通过接口模块(1)将所述发送的数据读出;中断产生模块(8)配置为根据接收到的状态信息生成相应的中断。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘东梅牛英山
申请(专利权)人:中国电子科技集团公司第四十七研究所
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1