CN101510185B - 一种高速总线向低速总线写入、读取数据的方法和装置 - Google Patents
一种高速总线向低速总线写入、读取数据的方法和装置 Download PDFInfo
- Publication number
- CN101510185B CN101510185B CN200910081292.5A CN200910081292A CN101510185B CN 101510185 B CN101510185 B CN 101510185B CN 200910081292 A CN200910081292 A CN 200910081292A CN 101510185 B CN101510185 B CN 101510185B
- Authority
- CN
- China
- Prior art keywords
- data
- speed bus
- bus
- low speed
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000005540 biological transmission Effects 0.000 claims abstract description 104
- 238000005538 encapsulation Methods 0.000 claims abstract description 23
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 claims description 45
- 230000006870 function Effects 0.000 claims description 20
- 238000012546 transfer Methods 0.000 claims description 20
- 238000012856 packing Methods 0.000 claims description 5
- 238000004321 preservation Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 abstract description 5
- 230000006399 behavior Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
本发明提供一种高速总线向低速总线写入、读取数据的方法和装置。其中,写入数据方法包括:将高速总线的数据封装为高速总线向低速总线传输的中间数据,所述中间数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据;从高速总线接口获取所述中间数据,保存所述中间数据至存储器;获取并解析所述存储器中的中间数据,根据该中间数据中的传输标志位,将所述中间数据按照低速总线传输协议写入低速总线。本发明只需将CPU程序中的底层读写行为封装成高速总线向低速总线传输的中间数据的函数,即可完成高速总线和低速总线的数据传输,而不必改动底层硬件行为。
Description
技术领域
本发明涉及总线设计技术领域,特别是涉及一种高速总线向低速总线写入、读取数据的方法和装置。
背景技术
在嵌入式系统中,通常存在多种处理器和专用芯片,各自完成不同的任务,如网络协议处理、信号调制解调处理、语音编解码处理、信号控制处理等。一般设计中,用64位宽或32位宽高速宽位处理器处理网络协议,由专用芯片来处理信号调制解调、语音编解码、信号控制等,专用芯片往往直接挂在处理器的总线上,在这些处理器和专用芯片之间通过总线进行大量的数据传输。
高速宽位处理器如英特尔公司的StongArm等精简指令处理器(RSICCPU),通常它们的内频运行在200MHz以上,总线为64位宽或32位宽的高速总线如先进微控制器总线体系结构(AMBA,Advanced Microcontroller BusArchitecture)总线,而其外部总线频率则一般为400KHz-1MHz的8位宽串行低速总线如内部集成电路(IIC,Inter-Integrated Circuit)总线,这些高速总线和低速总线的数据传输速度不同,传输协议各异,在交换数据时,无论处理器总线宽度是多少,都只能以字节宽度进行传输,一个64位宽的双字传输要分成8个字节传输周期来完成。在进行通讯时,由于高速宽位处理器的运行速度远远高于专用芯片等串行接口的速度,因此造成了高速设备与低速串口之间的通讯障碍。
为了解决这一问题,中国专利公开号为CN1407467A,公开日为2003年4月2日的专利申请公开了一种总线-总线快速传输装置,所述装置包括:核心控制模块、数据存取模块、高速宽位处理器控制接口模块、高速宽位主从或直接内存存取控制接口模块、低速接口处理器或专用芯片控制接口模块、中断控制模块及寄存器;所述核心控制模块:作为整个装置的控制核心,负责整个装置的状态处理、状态机的迁延、其它模块的管理和协调等;所述数据存取模块:包括数据存储区、数据驱动器、数据选择器等,输入/输出数据通过数据驱动器和数据选择器在核心控制模块的控制下存入数据存储区或从数据存储区取出;所述高速宽位处理器控制接口模块:作为与高速宽位处理器的接口,使高速宽位处理器对本装置进行初始化和控制,并完成对低速接口处理器或专用芯片的直接控制;所述高速宽位主从或直接内存存取控制接口模块:在高速宽位处理器和低速接口处理器或专用芯片之间存在大批量数据交换时,产生各种主从或直接内存存取控制信号,送往核心控制模块;所述低速接口处理器或专用芯片控制接口模块:作为与低速接口处理器或专用芯片的控制接口,与核心控制模块、数据存储模块相连;所述中断控制模块:负责各种中断信号的接收和产生,用于控制高速宽位处理器的中断;所述寄存器:接收来自高位处理器的数据,在核心控制模块的控制下,存取各模块的状态、控制、接收请求及响应。
上述现有技术方案是在64位宽或32位宽高速处理器与8位宽低速接口处理器或专用芯片之间加入一总线-总线数据快速传输装置,两者的数据传输总线不直接相连,而分别与所述装置相连。可以看出,该方案当高、低速设备间有大批量数据传输时,因高速宽位处理器只与总线-总线数据快速传输装置以64位宽或32位宽高速传输数据,因而节省了大量总线占用时间,提高了系统处理能力。但是,采用这种硬件方式处理高、低速设备的大量数据传输问题时,一方面,采用这种方式不够灵活,通用性差,一旦接口位宽发生改变时,则需要对此装置硬件进行改动;另一方面,这种方案需要将寄存器分为地址寄存器和数据寄存器,地址寄存器用来存放地址数据,数据寄存器则存放实际写入数据,因为寄存器的区别使用从而占用了较多的寄存器资源。而寄存器虽然访问速度快但占用面积较大、造价较高,造成了嵌入式系统芯片空间的较多占用,也提高了硬件成本。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够有效解决嵌入式系统中高速设备和低速设备间的不同位宽总线数据传输问题,且具有较好的灵活性和通用性,不必改动底层硬件行为。
发明内容
本发明所要解决的技术问题是提供一种总线数据传输方法和装置,能够有效解决嵌入式系统中高速设备和低速设备间的不同位宽总线数据传输问题,且具有较好的灵活性和通用性,不必改动底层硬件行为。
为了解决上述问题,本发明实施例提供了一种高速总线向低速总线写入数据的方法,包括以下步骤:
将高速总线的数据封装为高速总线向低速总线传输的中间数据,所述中间数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据;
从高速总线接口获取所述中间数据,保存所述中间数据至存储器;
获取并解析所述存储器中的中间数据,根据该中间数据中的传输标志位,将所述中间数据按照低速总线传输协议写入低速总线。
优选的,所述高速总线为先进微控制器总线体系结构AMBA总线。
优选的,所述低速总线为内部集成电路IIC总线,所述低速总线传输协议为IIC总线传输协议;所述存储器为先进先出存储器。
优选的,所述高速总线向低速总线写入数据的方法还包括:在保存所述中间数据至存储器前,判断所述存储器是否有存储空间,若是,则保存。
本发明实施例还提供了一种高速总线读取低速总线数据的方法,包括以下步骤:
将高速总线的低速总线设备地址数据封装为高速总线向低速总线传输的中间地址数据,所述中间地址数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据;
从高速总线接口获取所述中间地址数据,保存所述中间地址数据至第一存储器;
获取并解析所述第一存储器中的中间地址数据,根据该中间地址数据中的传输标志位,将所述中间地址数据按照低速总线传输协议写入低速总线,查找所述低速总线设备;
读取所述低速总线设备的数据至高速总线。
优选的,所述高速总线为AMBA总线。
优选的,所述低速总线为IIC总线,所述低速总线传输协议为IIC总线传输协议。
优选的,所述读取低速总线设备的数据至高速总线,包括:
将所述低速总线设备的数据写入第二存储器;
读取所述第二存储器的数据至高速总线。
优选的,所述高速总线读取低速总线数据的方法还包括:在保存所述中间地址数据至第一存储器前,判断所述第一存储器是否有存储空间,若是,则保存。
本发明实施例还提供了一种高速总线向低速总线传输的中间数据的封装方法,包括以下步骤:
在从高速总线获取的有效数据相邻的位置附加传输标志位,所述有效数据和传输标志位的位数与低速总线位宽相同,所述传输标志位用以标识所述有效数据为地址数据或写入数据。
优选的,所述传输标志位包括:传输开始位、传输结束位、读/写操作位、数据类型位和保留位。
优选的,所述有效数据相邻的位置附加传输标志位为每8位有效数据附加8位传输标志位。
本发明实施例还提供了一种总线数据传输装置,包括:
高速总线接口,用于与高速总线的连接,获取并传输经过封装的高速总线向低速总线传输的中间数据;以及,用于获取并传输存储器上的数据;
存储器,用于缓存数据;
有限状态机,用于获取并解析所述存储器中的中间数据,根据所述中间数据中的传输标志位,将所述中间数据按照低速总线传输协议写入低速总线;以及,接收并传输所述低速总线的数据;
以及,
高低速总线数据传输模块,用于将高速总线的数据封装成高速总线向低速总线传输的中间数据,所述中间数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据。
优选的,所述高速总线为AMBA总线。所述低速总线为IIC总线,所述低速总线传输协议为IIC总线传输协议。所述存储器为先进先出存储器。
优选的,所述总线数据传输装置还包括:
控制寄存器,用于控制和获取所述存储器的数据存储状况。
优选的,所述总线数据传输装置还包括:
中断控制模块,用于负责各种中断信号的接收和产生。
与现有技术相比,本发明的一个实施例的技术方案具有以下优点:
首先,本发明对于不同位宽总线的数据传输,只需将CPU程序中的底层读写行为封装成高速总线向低速总线传输的中间数据的函数,即可把从AMBA总线上获取的数据,以符合标准的IIC总线协议的数据格式传输给IIC总线,而不必改动底层硬件的行为,从而大大降低了硬件设计复杂度。
其次,本发明通过上层软件实现不同的IIC总线高层协议,对于不同位宽的总线只需修改相应的CPU程序中的读写函数即可实现数据的有效传输,具有较好的灵活性和通用性。
然后,本发明使用先进先出存储器进行数据访问,同时支持地址数据和有效数据,与现有技术中使用不同的寄存器以分别访问地址数据和有效数据相比,有效节省了寄存器资源。
附图说明
图1是本发明的一种高速总线向低速总线写入数据的方法实施例的步骤流程图;
图2是本发明的一种高速总线向低速总线写入、读取数据的方法的优选实施环境的示意图;
图3是本发明的一种高速总线读取低速总线数据的方法实施例的步骤流程图;
图4是本发明的一种总线数据传输装置实施例的结构框图;
图5是本发明应用图4所示装置进行高速总线向低速总线写入数据的步骤流程图;
图6是本发明应用图4所示装置进行高速总线读取低速总线数据的步骤流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的核心构思之一在于,通过对CPU程序中的读写函数的修改,利用函数封装将高速总线协议数据转换为低速总线协议数据,以实现高低速总线的数据传输。本发明只需将CPU程序中的底层读写行为封装成高速总线向低速总线传输的中间数据的函数,而不改动底层硬件的读写行为,降低了硬件设计复杂度;对于不同位宽的总线只需修改相应的CPU程序中的读写函数即可实现数据的有效传输,具有较好的灵活性和通用性。
目前,AMBA总线是嵌入式系统较为普遍应用的高速总线,而IIC总线则是广泛使用的低速总线。本说明书主要以AMBA总线和IIC总线之间的数据传输为例介绍本发明的技术方案,为了能够更好地理解,下面对AMBA总线和IIC总线作以简单介绍。
AMBA总线规范是ARM公司设计的一种用于高性能嵌入式系统的总线标准,当ARM(Advanced RISC Machines)核作为一个元件集成到复杂的系统芯片上时,需要某种接口和其它元件进行通讯,这就是AMBA总线。随着集成电路芯片技术的发展,AMBA已成为一种流行的工业标准。AMBA规范主要包括了AHB(Advanced High performance Bus)系统总线和APB(AdvancedPeripheral Bus)外围总线。AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,可配置32位-128位总线宽度;APB主要用于低带宽的周边外设之间的连接,总线宽度通常为16位。
IIC总线是PHILIPS公司开发的一种简单、双向、二线制、同步串行总线,其目的是解决各个串行设备间的通信,IIC总线是目前系统芯片控制外围设备最为常用的一种总线。IIC总线的数据传输由主设备控制。所谓主设备是指启动数据的传送(发出启动信号)、发出时钟信号以及传送结束时发出停止信号的设备,通常主设备都是微处理器。被主设备寻访的设备称为从设备。为了进行通讯,每个接到IIC总线的设备都有一个唯一的地址,以便于主设备寻访。主设备和从设备的数据传送,可以由主设备发送数据到从设备,也可以由从设备发到主设备。
在AMBA总线上传输的数据符合AMBA总线协议规定的模式,要将其传输到IIC总线上,就必须进行转换,使其符合IIC总线协议。
参照图1,示出了本发明一种高速总线向低速总线写入数据的方法实施例的步骤流程图。为了便于理解本实施例的内容,下面对本实施例的一种优选的实施环境作以介绍。
如图2,是本发明一种高速总线向低速总线写入、读取数据的方法的优选实施环境的示意图,该示意图示出了一种总线连接装置将高速AMBA总线上的数据传输到低速IIC总线上,所述装置包括:高速总线接口、FIFO(First InFirst Out)存储器、有限状态机、控制寄存器和中断控制,该装置一端通过AMBA总线接口与AMBA总线相连,另一端则通过有限状态机与IIC总线相连。基于上述应用环境,本实施例的高速总线向低速总线写入数据的方法具体可以包括以下步骤:
步骤101:将高速总线的数据封装为高速总线向低速总线传输的中间数据,所述中间数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据;
所述写入数据为向低速总线设备写入的数据,可以为寄存器的值。
在AMBA高速总线上传输的数据是符合AMBA总线协议规范的数据,要使其能在IIC总线上传输,就必须将其转换成符合IIC总线协议规范的数据,本实施例先将AMBA总线数据封装为高速总线向低速总线传输的中间数据,然后再对该中间数据进行解析,使其成为可以在IIC总线上传输的标准IIC总线数据。
本发明的高速总线向低速总线传输的中间数据的封装方法具体为:在从高速总线获取的有效数据相邻的位置附加传输标志位,该有效数据和传输标志位的位数与低速总线位宽相同,本实施例中,每传送8位有效数据需要附加8位的传输标志位,所述传输标志位主要用以标识所述有效数据为地址数据或写入数据,包括传输开始位、传输结束位、读/写操作位、数据类型位和保留位,表示如下:
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
reserved addr rw stop start
其中,0比特位为传输开始位,为1表示传输标志位所附的8位有效数据为传输开始数据,为0则8位有效数据不为传输开始数据;
1比特位为传输结束位,为1表示传输标志位所附的8位有效数据送出后本次传输结束,为0则相反;
2比特位为读写操作位,为1表示此次操作为读操作,为0则表示此次操作为写操作;
3比特位为数据类型位,为1表示传输标志位所附的8位有效数据为寄存器地址,为0则表示8位有效数据为写入数据;
4至7比特位为保留位。
传输标志位与有效数据相邻,位于传输字节的高位,例如,高速总线宽度为16位时,传输模式如下:
如果高速总线宽度为32位时,传输模式可以为如下两种:
传输标志位 有效数据 传输标志位 有效数据
31…24 | 23…16 | 15…8 | 7…0 |
或者,
Reserved 传输标志位 有效数据
31…16 | 15…8 | 7…0 |
在AMBA高速总线上传输的高速总线数据,CPU将其程序中的底层读写行为封装成高速总线向低速总线传输的中间数据的函数,进而转换为可以在IIC总线上传输的数据。
以下以16位总线为例说明写函数的封装:
IIC总线上的设备,会被分配固定的地址空间和相应的中断编号。为了更清楚地说明读写函数的封装,本说明的IIC设备仅包括:IIC主设备(IICMaster)、IIC内部FIFO存储器和DUV(Design Under Verification)。如果IIC总线的地址范围为0x2000~0x8000,其中IIC Master的起始地址为0x3000,IICMaster内部的FIFO存储器入口地址为0x500,则FIFO存储器的实际地址为0x3000+0x500=0x3500。若DUV中的某个寄存器为地址为0xaa,当向DUV的0xaa写入数值的时候,CPU所操作的寄存器地址为0x3000+0x500+0xaa=0x35aa。假设CPU要写入数据的IIC的设备地址编号为0xa8,按照本发明的中间数据封装方法,完成一次写寄存器操作的函数封装可能如下:
#define IIC_FIFO 0x3500
Write_duv_register(unsigned char addr,unsigned char value)
{
cpu_write(IIC_FIFO,(0x0100+0xa8));
//0x0100为传输标志位的16进制数值,表示传输的有效数据为传输开始数据;0xa8为CPU要写入数据的IIC设备地址编号;
cpu_write(IIC_FIFO,(0x0800+addr));
//0x0800为传输标志位的16进制数值,表示传输的有效数据为寄存器地址;addr即为寄存器地址,此例中为0x35aa;
cpu_write(IIC_FIFO,(0x0200+value));
//0x0800为传输标志位的16进制数值,表示本次有效数据传输后传输结束;value为要向设备写入的数值;
}
以下以32位总线为例说明读函数的封装:
若IIC的基地址为0xb0000000,IIC Master在IIC的地址空间中起始地址为0x10000,IIC Master内部的FIFO存储器入口地址为0x2500,DUV中的某个寄存器为地址为0xaa,当读取DUV的0xaa数据的时候,CPU所操作的寄存器地址为0xb0000000+0x10000+0x2500+0xaa=0xb00125aa。假设要读取的IIC总线设备的地址编号为0xa8,按第二种传输模式,完成一次读寄存器操作的函数封装可能如下:
#define IIC_FIFO 0x1 2500
Read_duv_register(unsigned char addr)
{
cpu_write(IIC_FIFO,(0x00000100+0xa8));
cpu_write(IIC_FIFO,(0x00000800+addr));
cpu_read(IIC_FIFO);
}
AMBA总线的数据经过封装后,成为高速总线向低速总线传输的中间数据,所述中间数据包括有效数据和传输标志位,由AMBA总线接口获取。
步骤102:获取所述中间数据;
通过高速总线接口获取高速AMBA总线上的经过封装的高速总线向低速总线传输的中间数据。
步骤103:判断存储器是否有存储空间,若否,则等待;若是,则执行步骤104;
本实施例的存储器选用FIFO存储器,FIFO存储器是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,数据顺序写入,顺序的读出,其数据地址由内部读写指针自动加1完成,不需要像普通存储器那样通过地址线决定读取或写入的存储器地址。本实施例在存储所述中间数据前首先判断FIFO存储器是否还有存储空间,如果有,则进行存储;如果没有,则中断控制发出中断信号将CPU程序挂起,等待有空间后再进行存储。当然,本领域技术人员也可选用其它适合的存储器,本发明无须对此作出限制。
步骤104:保存所述中间数据至存储器;
当FIFO存储器还有存储空间时,保存所述中间数据至FIFO存储器。
步骤105:发送存储器不空信息给有限状态机;
控制寄存器检查FIFO存储器中的数据存储情况,当FIFO存储器中有数据时,则发送存储器非空信息给有限状态机,通知有限状态机来读取FIFO存储器中的数据。
当FIFO存储器存储数据满时,则发送FIFO存储器满信号给中断控制,由中断控制向CPU发出中断请求,中断AMBA总线接口继续向FIFO存储器存入数据,控制数据流的速度;当FIFO存储器不满时,则可继续存入数据。
步骤106:获取并解析所述存储器中的中间数据,根据该中间数据中的传输标志位,将所述中间数据按照低速总线传输协议写入低速总线。
有限状态机从所述FIFO存储器中获取所述中间数据,对中间数据进行解析,解析出所述中间数据的有效数据和传输标志位数据,并按照低速总线传输协议写入IIC总线,写入时,由解析后的传输标志位识别有效数据是地址数据还是写入数据,若为地址数据,则根据此数据查找要写入的设备地址,进而将所述写入数据写入。每次写入的数据按照相应的低速总线传输协议的规定,本实施例中为IIC总线传输协议,位数与低速总线位宽相同,本实施例中为8位。
参照图3,示出了本发明一种高速总线读取低速总线数据的方法实施例的步骤流程图,本实施例仍然基于图2所示的优选实施环境,具体可以包括以下步骤:
步骤201:将高速总线的低速总线设备地址数据封装为高速总线向低速总线传输的中间地址数据,所述中间地址数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据;
AMBA总线要读取IIC总线的某个设备上的数据时,首先由AMBA总线接口获取IIC总线设备的地址数据,包括设备编号和设备的寄存器地址,CPU将其程序中的底层读写行为封装成高速总线向低速总线传输的中间数据的函数,将所述地址数据转换为中间地址数据,所述中间地址数据包括有效数据和传输标志位数据。
步骤202:获取所述中间地址数据;
通过高速总线接口获取高速AMBA总线上的经过封装的中间地址数据。
步骤203:判断第一存储器是否有存储空间,若否,则等待;若是,则执行步骤204;
本实施例中,所述第一存储器为第一FIFO存储器,当然,也可以为其它类型存储器,本发明无须对此作出限制。
步骤204:保存所述中间地址数据至第一存储器;
步骤205:发送第一存储器不空信息给有限状态机;
控制寄存器检查第一FIFO存储器中的数据存储情况,当第一FIFO存储器中有数据时,则发送存储器非空信息给有限状态机,通知有限状态机来读取第一FIFO存储器中的地址数据。
当第一FIFO存储器存储数据满时,则发送第一FIFO存储器满信号给中断控制,由中断控制向CPU发出中断请求,中断AMBA总线接口继续向第一FIFO存储器写入地址数据,;当第一FIFO存储器不满时,则可继续写入数据。
步骤206:获取并解析所述第一存储器中的中间地址数据,根据该中间地址数据中的传输标志位,将所述中间地址数据按照低速总线传输协议写入低速总线,查找所述低速总线设备;
有限状态机从第一FIFO存储器中获取中间地址数据,解析传输标志位,并将解析后的中间地址数据按照低速总线传输协议的规定写入IIC总线,并查找相应的IIC总线设备。写入时,每次写入的数据符合低速总线传输协议,位数与低速总线位宽相同,本实施例中为8位。
步骤207:获取低速总线设备的数据;
解析出IIC总线设备地址后,CPU发出读取数据指令,所述IIC总线设备将数据传输给有限状态机。
步骤208:将所述IIC总线设备地址的数据写入第二存储器;
本实施例所述第二存储器为第二FIFO存储器,有限状态机将IIC总线设备的数据写入第二存储器。
步骤209:发送第二存储器不空信息给中断控制;
控制寄存器检查第二FIFO存储器中的数据存储情况,当第二FIFO存储器中有数据时,则发送存储器非空信息给中断控制。
步骤210:读取所述第二存储器的数据至高速总线。
中断控制向CPU发送中断请求,通知CPU读取数据。CPU通过AMBA总线接口将数据传输到AMBA总线,完成AMBA总线读取IIC总线数据的过程。
参照图4,示出了本发明一种总线数据传输装置实施例的结构框图,具体可以包括:
高低速总线数据传输模块301,用于将高速总线的数据封装成高速总线向低速总线传输的中间数据,所述中间数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据;
优选的,所述高速总线为AMBA总线。
高速总线接口302,用于与高速总线的连接,获取并传输经过封装的高速总线向低速总线传输的中间数据;以及,用于获取并传输存储器上的数据;
存储器303,用于缓存数据;
优选的,所述存储器为FIFO存储器。
有限状态机304,用于获取并解析所述存储器中的中间数据,根据所述中间数据中的传输标志位,将所述中间数据按照低速总线传输协议写入低速总线;以及,接收并传输所述低速总线的数据。
优选的,所述低速总线为IIC总线,所述低速总线传输协议为IIC总线传输协议。
优选的,本发明的总线数据传输装置还可以包括:
控制寄存器305,用于控制和获取所述存储器的数据存储状况。
优选的,本发明的总线数据传输装置还可以进一步包括:
中断控制模块306,用于负责各种中断信号的接收和产生。
参照图5,示出了本发明应用图4所示装置进行高速总线向低速总线写入数据的步骤流程图,具体可以包括以下步骤:
步骤401:高低速总线数据传输模块将AMBA总线数据封装成高速总线向低速总线传输的中间数据;
高低速总线数据传输模块根据本发明的封装高速总线向低速总线传输的中间数据的方法,将从AMBA总线获取的数据封装成中间数据,所述中间数据包括有效数据和传输标志位,封装方法是将CPU程序中的底层读写行为封装成高速总线向低速总线传输的中间数据的函数。
步骤402:高速总线接口获取所述中间数据;
步骤403:判断存储器是否有存储空间,若否,则等待;若是,则执行步骤404;
所述存储器为FIFO存储器。
步骤404:存储器存储所述中间数据;
当FIFO存储器还有存储空间时,保存所述中间数据至FIFO存储器。
步骤405:控制寄存器发送存储器不空信息给有限状态机;
控制寄存器检查FIFO存储器中的数据存储情况,当FIFO存储器中有数据时,则发送存储器非空信息给有限状态机,通知有限状态机来读取FIFO存储器中的数据。
当FIFO存储器存储数据满时,控制寄存器发送FIFO存储器满信号给中断控制模块,由中断控制模块向CPU发出中断请求,中断AMBA总线接口继续向FIFO存入数据,控制数据流的速度;当FIFO不满时,则可继续存入数据。
步骤406:有限状态机获取并解析所述存储器中的中间数据,根据该中间数据中的传输标志位,将所述中间数据按照低速总线传输协议写入低速总线。
有限状态机从所述FIFO存储器中获取所述中间数据,对中间数据进行解析,由解析后的传输标志位识别有效数据是地址数据还是写入数据,并写入IIC总线,写入时,每次写入的数据按照相应的低速总线传输协议的规定,位数与低速总线位宽相同。
参照图6,示出了本发明应用图4所示装置进行高速总线读取低速总线数据的步骤流程图,本实施例中的存储器分为第一存储器和第二存储器,具体可以包括以下步骤:
步骤501:高低速总线数据传输模块将AMBA总线上的IIC总线设备的地址数据封装成高速总线向低速总线传输的中间地址数据;;
步骤502:高速总线接口获取所述中间地址数据;
步骤503:判断第一存储器是否有存储空间,若否,则等待;若是,则执行步骤504;
所述第一存储器为第一FIFO存储器。
步骤504:第一存储器存储所述中间地址数据;
步骤505:控制寄存器发送第一存储器不空信息给有限状态机;
控制寄存器检查第一FIFO存储器中的数据存储情况,并发送第一FIFO存储器非空信息给有限状态机,通知有限状态机读取数据。
当第一FIFO存储器满时,控制寄存器发送第一FIFO存储器满信号给中断控制模块,由中断控制模块向CPU发出中断请求,中断AMBA总线接口继续向第一FIFO存储器继续存入数据。
步骤506:有限状态机获取并解析所述第一存储器中的中间地址数据,根据该中间地址数据中的传输标志位,将所述中间地址数据按照低速总线传输协议写入低速总线,查找所述低速总线设备;
步骤507:有限状态机获取IIC总线设备地址的数据;
解析出IIC总线设备地址后,CPU发出读取数据指令,所述IIC总线设备将数据传输给有限状态机。
步骤508:第二存储器存储IIC总线设备地址的数据;
本实施例所述第二存储器为第二FIFO存储器。
步骤509:控制寄存器发送第二存储器不空信息给中断控制模块;
步骤510:高速总线接口读取所述第二存储器的数据至AMBA总线。
中断控制模块向CPU发送中断请求,通知CPU读取数据。CPU通过AMBA总线接口将数据传输到AMBA总线。
需要说明的是,本说明书主要以AMBA高速总线和IIC低速总线为例介绍了本发明的技术方案,但本领域技术人员应当知悉,本发明对其它高、低速总线间的数据传输只需适当修改总线接口后也可适用,本发明无须对此作出限制。
此外,本发明的方法实施例为了简单描述,将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
其次,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种总线数据传输方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种高速总线向低速总线写入数据的方法,其特征在于,包括以下步骤:
将高速总线的数据封装为高速总线向低速总线传输的中间数据,所述中间数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据,
其中,封装所述高速总线的数据包括:对CPU函数中的读写函数进行修改,在从所述高速总线获取的所述有效数据相邻的位置附加所述传输标志位,所述有效数据和所述传输标志位的位数与所述低速总线位宽相同;
从高速总线接口获取所述中间数据,保存所述中间数据至存储器;
获取并解析所述存储器中的中间数据,根据该中间数据中的传输标志位,将所述中间数据按照低速总线传输协议写入低速总线。
2.根据权利要求1所述的方法,其特征在于,所述高速总线为先进微控制器总线体系结构AMBA总线。
3.根据权利要求1或2所述的方法,其特征在于,所述低速总线为内部集成电路IIC总线,所述低速总线传输协议为IIC总线传输协议;所述存储器为先进先出存储器。
4.根据权利要求1或2所述的方法,其特征在于,还包括:在保存所述中间数据至存储器前,判断所述存储器是否有存储空间,若是,则保存。
5.一种高速总线读取低速总线数据的方法,其特征在于,包括以下步骤:
将高速总线的低速总线设备地址数据封装为高速总线向低速总线传输的中间地址数据,所述中间地址数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据,
其中,封装所述高速总线的所述低速总线设备地址数据包括:对CPU函数中的读写函数进行修改,在从所述高速总线获取的所述有效数据相邻的位置附加所述传输标志位,所述有效数据和所述传输标志位的位数与低速总线位宽相同;
从高速总线接口获取所述中间地址数据,保存所述中间地址数据至第一存储器;
获取并解析所述第一存储器中的中间地址数据,根据该中间地址数据中的传偷标志位,将所述中间地址数据按照低速总线传输协议写入低速总线,查找所述低速总线设备;
读取所述低速总线设备的数据至高速总线。
6.根据权利要求5所述的方法,其特征在于,所述高速总线为AMBA总线。
7.根据权利要求5或6所述的方法,其特征在于,所述低速总线为IIC总线,所述低速总线传输协议为IIC总线传输协议。
8.根据权利要求5或6所述的方法,其特征在于,所述读取低速总线设备的数据至高速总线,包括:
将所述低速总线设备的数据写入第二存储器;
读取所述第二存储器的数据至高速总线。
9.根据权利要求5或6所述的方法,其特征在于,还包括:在保存所述中间地址数据至第一存储器前,判断所述第一存储器是否有存储空间,若是,则保存。
10.一种高速总线向低速总线传输的中间数据的封装方法,其特征在于,包括以下步骤:
在从高速总线获取的有效数据相邻的位置附加传输标志位,所述有效数据和传输标志位的位数与低速总线位宽相同,所述传输标志位用以标识所述有效数据为地址数据或写入数据。
11.根据权利要求10所述的方法,其特征在于,所述传输标志位包括:
传输开始位、传输结束位、读/写操作位、数据类型位和保留位。
12.根据权利要求10或11所述的方法,其特征在于,所述有效数据相邻的位置附加传输标志位为每8位有效数据附加8位传输标志位。
13.一种总线数据传输装置,其特征在于,包括:
高速总线接口,用于与高速总线的连接,获取并传输经过封装的高速总线向低速总线传输的中间数据;以及,用于获取并传输存储器上的数据;
存储器,用于缓存数据;
有限状态机,用于获取并解析所述存储器中的中间数据,根据所述中间数据中的传输标志位,将所述中间数据按照低速总线传输协议写入低速总线;以及,接收并传输所述低速总线的数据;
以及,
高低速总线数据传输模块,用于将高速总线的数据封装成高速总线向低速总线传输的中间数据,所述中间数据包括有效数据和传输标志位,所述传输标志位用以标识所述有效数据为地址数据或写入数据,
其中,封装所述高速总线的数据包括:对CPU函数中的读写函数进行修改,在从所述高速总线获取的所述有效数据相邻的位置附加所述传输标志位,所述有效数据和所述传输标志位的位数与所述低速总线位宽相同。
14.根据权利要求13所述的装置,其特征在于,所述高速总线为AMBA,所述低速总线为IIC总线,所述低速总线传输协议为IIC总线传输协议;所述存储器为先进先出存储器。
15.根据权利要求13或14所述的装置,其特征在于,还包括:
控制寄存器,用于控制和获取所述存储器的数据存储状况。
16.根据权利要求13或14所述的装置,其特征在于,还包括:
中断控制模块,用于负责各种中断信号的接收和产生。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910081292.5A CN101510185B (zh) | 2009-04-01 | 2009-04-01 | 一种高速总线向低速总线写入、读取数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910081292.5A CN101510185B (zh) | 2009-04-01 | 2009-04-01 | 一种高速总线向低速总线写入、读取数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101510185A CN101510185A (zh) | 2009-08-19 |
CN101510185B true CN101510185B (zh) | 2015-08-05 |
Family
ID=41002588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910081292.5A Expired - Fee Related CN101510185B (zh) | 2009-04-01 | 2009-04-01 | 一种高速总线向低速总线写入、读取数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101510185B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917318A (zh) * | 2010-02-11 | 2010-12-15 | 深圳市国微电子股份有限公司 | 一种高低速总线系统连接装置及高低速总线系统 |
CN101984486A (zh) * | 2010-10-25 | 2011-03-09 | 深圳市明微电子股份有限公司 | 可设指令的传输方法及传输装置 |
CN102033842B (zh) * | 2010-12-02 | 2012-05-30 | 西北工业大学 | S模式应答机与高速智能统一总线接口方法 |
CN103377159A (zh) * | 2012-04-28 | 2013-10-30 | 硕颉科技股份有限公司 | 内部整合电路接口的数据传输装置及方法 |
CN102999467A (zh) * | 2012-12-24 | 2013-03-27 | 中国科学院半导体研究所 | 基于fpga实现的高速接口与低速接口转换电路及方法 |
CN105550142A (zh) * | 2015-12-07 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种高低速转换接口中的数据完整性处理方法 |
CN109408427B (zh) * | 2017-08-18 | 2021-01-22 | 龙芯中科技术股份有限公司 | 一种跨时钟域数据处理方法及系统 |
CN108650160B (zh) * | 2018-04-26 | 2020-07-17 | 西安微电子技术研究所 | 一种基于链式端口的总线桥接器及其工作方法 |
CN109471814A (zh) * | 2018-10-31 | 2019-03-15 | 龙迅半导体(合肥)股份有限公司 | 一种数据传输的方法、装置及主控制端 |
CN111078606B (zh) * | 2019-11-18 | 2021-05-11 | 上海灵动微电子股份有限公司 | 一种模拟i2c从机及其实现方法、终端设备和存储介质 |
CN111858436B (zh) * | 2020-07-30 | 2021-10-26 | 南京英锐创电子科技有限公司 | 高速总线读写低速总线的转接电路及数据读写设备 |
CN112416823B (zh) * | 2020-11-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种突发模式下的传感器数据读写控制方法、系统及芯片 |
CN114564433B (zh) * | 2022-02-14 | 2024-06-07 | 合肥美的智能科技有限公司 | 一种数据采集方法、系统、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1407467A (zh) * | 2001-09-13 | 2003-04-02 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种总线-总线快速传输装置 |
US6898659B2 (en) * | 2002-05-21 | 2005-05-24 | Samsung Electronics., Co., Ltd. | Interface device having variable data transfer mode and operation method thereof |
CN1661580A (zh) * | 2004-02-25 | 2005-08-31 | 中国科学院计算技术研究所 | 直接存储器访问传输装置及其方法 |
CN1760847A (zh) * | 2004-10-12 | 2006-04-19 | 富士通株式会社 | 总线桥和数据传输方法 |
-
2009
- 2009-04-01 CN CN200910081292.5A patent/CN101510185B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1407467A (zh) * | 2001-09-13 | 2003-04-02 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种总线-总线快速传输装置 |
US6898659B2 (en) * | 2002-05-21 | 2005-05-24 | Samsung Electronics., Co., Ltd. | Interface device having variable data transfer mode and operation method thereof |
CN1661580A (zh) * | 2004-02-25 | 2005-08-31 | 中国科学院计算技术研究所 | 直接存储器访问传输装置及其方法 |
CN1760847A (zh) * | 2004-10-12 | 2006-04-19 | 富士通株式会社 | 总线桥和数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101510185A (zh) | 2009-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101510185B (zh) | 一种高速总线向低速总线写入、读取数据的方法和装置 | |
JP6225154B2 (ja) | 共有メモリリンクの低電力エントリ | |
CN109154924B (zh) | 多个上行链路端口设备 | |
US6526462B1 (en) | Programmable multi-tasking memory management system | |
US6701405B1 (en) | DMA handshake protocol | |
US8751722B2 (en) | Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC) | |
US8103803B2 (en) | Communication between a processor and a controller | |
RU2619540C1 (ru) | Преобразователь протоколов между шиной cpci и шиной isa и соответствующий ему способ преобразования | |
CN108768981B (zh) | 一种实现Powerlink工业实时以太网通讯的IP核 | |
US9021169B2 (en) | Bus system including ID converter and converting method thereof | |
WO2021120623A1 (zh) | 一种数据传输方法、装置及相关组件 | |
EP1535169B1 (en) | Improved inter-processor communication system for communication between processors | |
CN112965924A (zh) | 一种AHB-to-AXI桥接器及激进式处理方法 | |
CN101162448A (zh) | 一种usb高速数据隧道的硬件传输方法 | |
EP1222551B1 (en) | Asynchronous centralized multi-channel dma controller | |
US7689758B2 (en) | Dual bus matrix architecture for micro-controllers | |
EP4266185A1 (en) | Microcontroller chip containing multi-protocol communication interface peripheral and operation method therefor | |
CN116561036B (zh) | 数据访问控制方法、装置、设备及存储介质 | |
CN116450570B (zh) | 基于fpga的32位risc-v处理器及电子设备 | |
US12039294B2 (en) | Device and method for handling programming language function | |
CN116186793B (zh) | 一种基于risc-v的安全芯片架构及其工作方法 | |
US6317847B1 (en) | Software read and write tracing using hardware elements | |
US20230305816A1 (en) | Device and method for handling programming language function | |
Sun et al. | Research on High-Speed Data Acquisition System Based on PCIE | |
KR20070063124A (ko) | 시스템 버스와 아이피간 인터페이싱 장치와 방법 및 컴퓨터프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150805 Termination date: 20170401 |
|
CF01 | Termination of patent right due to non-payment of annual fee |