两线编解码与localbus互转以实现板间数据交互的方法与流程

文档序号:13876301阅读:1289来源:国知局
两线编解码与localbus互转以实现板间数据交互的方法与流程

本发明是一种两线编解码与localbus互转以实现板间数据交互的方法,涉及电子设备成本节约的领域,更具体地说,是一种在跨板的两个可编程逻辑器件之间只使用两线编解码与localbus互转来实现大量数据交互的方法。



背景技术:

在低端通信设备迅速发展的今天,各通信设备制造商竞争越来越激烈,在功能都满足要求的情况下,竞争最直观的体现就是价格,谁占据了价格优势谁就赢得了市场。所以在产品设计的每一个过程中,节约成本的理念是必不可少的。

目前通讯设备中单板对本板localbus设备的访问比较传统的方法就是在本板放置一片cpu来实现,cpu直接送出了地址,数据,片选,读写使能等信号,所以进行localbus访问时只要遵循cpu的总线读写时序即可,处理起来比较简单,但是放置一片cpu会增加设备成本。有些接口卡本板localbus功能是用本设备其他带有cpu单板(主控)通过背板送过来的两到八根线进行编解码实现的。这种情况下带有cpu单板可以通过可编程逻辑器件完成localbus转各种串行总线协议,然后通过背板连接器到不带cpu单板,再由不带cpu单板的可编程逻辑器件完成各种串行总线协议转localbus协议。目前常用且比较简单的串行总线协议有spi、i2c、smi等。spi总线是3线协议,如果两个单板之间连接器的引脚数量比较少,多使用一个引脚会导致多增加一个连接器器件,增加设备成本。单从总线个数上i2c和smi会占有优势,都是两线串口总线,但是i2c协议编码解码较复杂,占用的逻辑资源也较多。smi协议则比较简单,编解码占用的逻辑资源不多但缺点是读写一个16bit地址的寄存器需要操作两次总线才能成完成,访问效率较低,而且寄存器地址空间只能达到64k,不能继续扩展。

综上所述:现有技术中存在着一方面使用cpu导致设备成本增加的问题,一方面就是去掉cpu后两线串口协议的代表smi总线协议中存在访问寄存器地址空间受限的问题。因此,就目前的总线协议无法实现64k以上地址空间的访问。



技术实现要素:

针对现有技术存在的不足,本发明目的是提供一种两线编解码与localbus互转以实现板间数据交互的方法,以解决上述背景技术中提出的问题。

为了实现上述目的,本发明是通过如下的技术方案来实现:一种两线编解码与localbus互转以实现板间数据交互的方法,即对smi总线协议的改进,特别适用于电子设备中与localbus总线的互转,以便完成有cpu单板对无cpu单板的访问。

进一步地,前导码m的个数和寄存器地址的位数n是可变的;

当寄存器地址位数n<16时,前导码位数m>16(16-bit的数据存在全1的可能);

当寄存器地址位数n>=16时,前导码位数m>n+1(1-bit的turnaroundwrite=10中的1与n-bit的寄存器地址组成n+1个1的可能);

在m和n值满足以上特征的情况下对起始码和操作码,转换码和idle等可进行0和1的翻转。

本发明的有益效果:本发明的一种两线编解码与localbus互转以实现板间数据交互的方法,相比较现有的smi总线访问寄存器的效率和空间都得到了很大改善。本发明的两线总线格式在访问大于16-bit寄存器地址时不仅可以做到比smi总线协议少触发一次写地址操作,提高了访问效率;而且能访问的寄存器地址空间更大,不用受16-bit地址空间的限制。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是本发明提供的带cpu单板localbus转本发明两线协议的方法

图2是本发明提供的不带cpu单板本发明两线协议转localbus的方法;

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。

本发明提供一种技术方案:一种两线编解码与localbus互转以实现板间数据交互的方法,特别适应于电子设备中与localbus总线的互转,以便完成有cpu单板对无cpu单板的访问。

作为本发明的一个实施例:本发明提供一种在自带cpu单板的可编程逻辑器件上实现localbus转两线编码,然后在不带cpu单板的可编程逻辑器件上实现两线解码转localbus的方法,该方法尤其适用在由多块印制电路板组装而成的电子设备中,本发明是在smi总线的基础上改进了smi访问效率低和访问空间受限的问题,本发明的技术方案如下:

本发明的串行数据格式为:

本发明的两线编码在使用时需要是一一对应的关系。本两线编码相对于smi总线改善的地方在:寄存器地址的位数n是可变的,当板内需要的寄存器空间较大时可以使用本两线编码任意扩展寄存器地址位数。在使用时当寄存器地址的位数n变化时,前导码的位数m也要相应变化。当寄存器地址位数n<16时,前导码位数m>16(16-bit的数据存在全1的可能);当寄存器地址位数n>=16时,前导码位数m>n+1(1-bit的turnaroundwrite=10中的1与n-bit的寄存器地址组成n+1个1的可能)。m-bit前导码和n-bit寄存器地址必须要满足以上条件才能正确的找到起始码01,否则没法判断起始位,与之对接的单板就没法完成两线解码过程。并且为了可靠性,可以把前导码的个数再满足上面需求的基础上多加个2-bit最好。

作为本发明的一个实施例:具体的,图1为在电子设备中某一块带cpu单板上的可编程逻辑器件中实现localbus转本发明两线协议的方法。

首先执行101,系统上电后,给使用到的寄存器和计数器赋初始值,初始值设置为全0;

然后执行102,给操作码寄存器reg_opcode[1:0]赋值,如果要进行读操作则reg_opcode[1:0]置10,如果要进行写操作则reg_opcode[1:0]置01;把地址寄存器reg_addr[n-1:0]输入要访问的地址;如果进行写操作,需要把reg_wr_data[15:0]写入值。

然后执行103,把reg_open读写开关位置1,触发一次读写操作。

执行104,发送m-bit的前导码1,并打开m的计数器,计数器每计1位,两线协议的数据线上根据时钟边沿往外输入一个1。105的计数器满时,则进行下一步,计数器不满时则继续计数移位输出一个bit。

当105的计数器满时,则执行106,一共用两个时钟边沿打两拍,分别送出0和1。

起始位发送结束后,执行107,把{reg_opcode[1:0],reg_addr[n-1:0]}操作码和地址组合到一个n+2-bit的寄存器,并打开n+2的计数器,每计移位,把数据从高位移出1bit。当108指示的计数器满时,则n+2-bit移位完成;如果未满,也继续计数,继续移位。

当108的计数器满时,流程同时进入109和112,当进入109判断操作码reg_opcode[1:0]==01时,即为写,按照帧格式发送2-bit的转换码10,发送完成后,进入110把reg_wr_data[15:0]进行并转串操作,并打开16的计数器,开始从高位移位输出。计数器每计一位输出1-bit。当计数器不满时继续循环,当计数器满时,则结束,进入115发送idle码,并把reg_open置0。

当进入112判断操作码reg_opcode[1:0]==10时,即为读,按照帧格式发送2-bit的转换码z0,发送完成后,进入113把reg_rd_data[15:0]进行串转并操作,并打开16的计数器,开始从低位移位输入。计数器每计一位输入1-bit。当计数器不满时继续循环,当计数器满时,则结束,进入115发送idle码,并把reg_open置0.

最后从115可转到103等待reg_open的置1,等待触发下一次读写操作。

作为本发明的一个实施例:图2为在电子设备中某一块不带cpu单板上的可编程逻辑器件中实现本发明两线协议转localbus的方法。

首先执行s101,系统上电后,给使用到的寄存器赋初值全ffff等,计数器、操作码等寄存器赋初值0;

然后执行s102,使用两线编码中时钟的边沿打数据,把数据从reg_start_datain[m-1:0]的低位移入,并把起始寄存器reg_start置0.

执行s103,判断reg_start_datain[m-1:0]是否只有reg_start_datain[0]=0,其他位全为1时,说明有一次读写操作要进行,则进入把s104,把reg_start置1,否则进入s102继续移位输入。

检测到reg_start==1时,执行s105,继续移位输入3-bit的起始位和操作码,n-bit的寄存器地址,并打开n+3的计数器。计数器每计一位,则移位1bit数据。

执行s106,检测计数器是否计满,否的话则继续计数,继续移位输入;计满则执行s107把移入操作码赋值给reg_opcode[1:0],移入地址赋值给reg_addr[n-1:0]。

同时执行s108和s112,判断reg_opcode[1:0]的值,当判断reg_opcode[1:0]==01时,即为写,准备移入16-bit数据。然后执行s109,开始移位接收并进行串行数据转并行数据到reg_datain[15:0],并打开16的计数器,计数器每计一位,则串行移入1-bit数据。当s110的计数器未满时,继续计数,当计数器满时,则执行s111,把localbus的cs和wr信号置0,把接收到的数据写入相应的寄存器地址,则执行s115结束,并把s102中的reg_start_datain[m:0]每个bit都置1.等待下一次的读写操作。

执行s112,判断reg_opcode[1:0]==10时,即为读,把cs和rd置0,把相应地址寄存器的16-bit数据取到移位寄存器reg_dataout[15:0]。然后执行s113,把reg_dataout[15:0]进行并转串从高位移位输出,并打开16的计数器,计数器每计一位,则串行移出1-bit数据。当s114的计数器未满时,继续计数,当计数器满时,则执行s115结束,并把s102中的reg_start_datain[m:0]每个bit都置1.等待下一次的读写操作。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1