发明内容
本发明的目的是提供一种数据卡读写方法、接口控制方法和装置,以实现多个微处理器与数据卡之间的读写访问。
为实现上述目的,本发明提供了一种数据卡读写方法,包括:
步骤A10、微处理器向接口控制装置发送查询总线状态指令,以按照所述查询总线状态指令中包含的地址从所述接口控制装置的标识寄存器中读取标识,并执行步骤A20;
步骤A20、所述微处理器检测读取的所述标识,当检测到读取的所述标识为空闲标识时,则执行步骤A30,当检测到读取的所述标识为所述微处理器自身的标识时,则执行步骤A40,当检测到读取的所述标识为其他标识时,则返回执行步骤A10;
步骤A30、所述微处理器向所述接口控制装置发送申请总线转换指令,以按照所述申请总线转换指令中包含的地址向所述标识寄存器中写入所述微处理器的标识,作为数据卡所连接的当前微处理器的标识,并返回执行步骤A10;
步骤A40、所述微处理器与所述数据卡通过所述接口控制装置进行读操作和/或写操作,并执行步骤A50;
步骤A50、所述微处理器向所述接口控制装置发送释放指令,以按照所述释放指令中包含的地址向所述标识寄存器中写入空闲标识。
为实现上述目的,本发明还提供了一种数据卡接口控制方法,包括:
步骤B10、当接口控制装置接收到微处理器发送的查询总线状态指令时,按照所述查询总线状态指令中包含的地址从本地的标识寄存器中读取标识,并反馈给所述微处理器;
步骤B20、当所述接口控制装置接收到所述微处理器发送的申请总线转换指令时,按照所述申请总线转换指令中包含的地址将所述微处理器的标识写入所述标识寄存器中,作为数据卡所连接的当前连接微处理器的标识;
步骤B30、所述接口控制装置进行所述微处理器与所述数据卡之间的读操作和/或写操作;
步骤B40、当所述接口控制装置接收到所述微处理器发送的释放指令时,按照所述释放指令中包含的地址将空闲标识写入所述标识寄存器。
为实现上述目的,本发明又提供了一种数据卡接口控制装置,包括:
至少两个微处理器接口,用于插接微处理器;
数据卡接口,用于插接数据卡;
标识寄存器,用于存储所述数据卡所连接的当前微处理器的标识或空闲标识;
仲裁模块,所述仲裁模块包括查询响应单元和写入响应单元,
所述查询响应单元,与所述微处理器接口和标识寄存器相连,用于当接收到微处理器发送的查询总线状态指令时,按照所述查询总线状态指令中包含的地址从所述标识寄存器中读取标识,并反馈给所述微处理器;
所述写入响应单元,与所述微处理器接口和标识寄存器相连,用于当接收到所述微处理器发送的申请总线转换指令时,按照所述申请总线转换指令中包含的地址将所述微处理器的标识写入所述标识寄存器中,作为数据卡所连接的当前微处理器的标识,且当接收到所述微处理器发送的释放指令时,按照所述释放指令中包含的地址将空闲标识写入所述标识寄存器;
转换模块,与所述微处理器接口和数据卡接口相连,用于进行所述微处理器与所述数据卡之间的读操作和/或写操作。
由以上技术方案可知,本发明采用接口控制装置对微处理器进行仲裁以确定数据卡的当前微处理器的技术手段,实现了多个微处理器可通过发送指令从接口控制装置获取与数据卡交互的授权,从而多个微处理器可以共享一 个数据卡中的数据。本发明丰富了数据卡的使用功能,尤其可以适用于某些通信类产品中的特定应用环境,满足用户的不同需求。
具体实施方式
下面通过具体实施例并结合附图对本发明做进一步的详细描述。
数据卡读写方法第一实施例
图1所示为本发明数据卡读写方法第一实施例的流程图。具体应用中,多个微处理器需要通过一接口控制装置与一数据卡相连,从而实现数据交互。其中,与微处理器配合工作的接口控制装置较佳的是可以采用复杂可编程逻辑器件(Complex Programable Logic Device;以下简称:CPLD)来实现,CPLD是一种用户可以根据各自需要而灵活自行构造逻辑功能的数字集成电路,其基本设计方法是借助集成开发软件平台,用原理图或硬件描述语言等方法,生成相应的目标文件,通过下载电缆将代码传送到目标芯片中,从而实现设计的数字系统。各微处理器和数据卡往往基于总线模式与接口控制装置进行数据交互,对于多个微处理器共享一个数据卡的情况,为了避免接口控制装置中出现总线冲突现象,需要首先解决多个微处理器的总线仲裁问题, 即需要确保同一时间只能有一个微处理器和数据卡之间实现总线转换通信。本实施例以一个请求与数据卡交互的微处理器为例来说明微处理器所执行的数据卡读写方法。如图1所示,该微处理器可以执行下述操作:
步骤A10、微处理器向接口控制装置发送查询总线状态指令,以按照查询总线状态指令中包含的地址从接口控制装置的标识寄存器中读取标识;
步骤A20、微处理器检测读取的标识是否为空闲标识或该微处理器自身的标识,当检测到读取的该标识为空闲标识时,则执行步骤A30,当检测到读取的标识为该微处理器自身的标识时,则执行步骤A40,当检测到读取的标识为其他标识,即不是空闲标识也不是微处理器自身标识时,则执行步骤A10;
步骤A30、微处理器向接口控制装置发送申请总线转换指令,以按照申请总线转换指令中包含的地址向标识寄存器中写入该微处理器自身的标识,作为数据卡所连接的当前微处理器的标识,并返回执行步骤A10;
步骤A40、微处理器与数据卡通过接口控制装置进行读操作和/或写操作;
步骤A50、微处理器向接口控制装置发送释放指令,以按照释放指令中包含的地址向标识寄存器中写入空闲标识。
具体应用中,微处理器可以采用并行总线或串行总线等不同的总线模式与接口控制装置交互,其实现的方式类似,只要指令中包含上述的地址和数据内容即可。本实施例具体以常见的本地总线为例来说明上述步骤。
本地总线是指连接微处理器和外围器件的并行总线,按照功能不同一般可分为数据信号线、地址信号线和控制信号线。数据信号线是双向总线,用于传送数据信息,既可以把微处理器的数据写入到外围器件,也可以将外围器件的数据读取到微处理器。数据信号线的宽度,即其根数决定每次能同时传输数据信息的位数。地址信号线是单向总线,用于将地址从微处理器传送到外围器件。控制信号线用于传送控制信号和时序信号,控制信号中有些是微处理器送往外围器件的,如读/写信号、片选信号、复位信号等,也有些是外围器件反馈给微处理器的,如中断请求信号等。具体地,微处理器的本 地总线可以包括8位(bit)输入输出的数据信号线Data(7:0),8位输出的地址信号线Add(7:0),以及输出的写使能信号线WE#、读使能信号线OE#和片选信号线CS#,则向接口控制装置发送的上述指令格式具体可以如表1所示:
表1
指令名称 |
地址信号线 |
数据信号线 |
WE# |
OE# |
CS# |
查询总线状态指令 |
10000000 |
当前微处理器的标识 |
无效 |
有效 |
有效 |
申请总线转换指令 |
10000000 |
微处理器自身的标识 |
有效 |
无效 |
有效 |
释放指令 |
10000000 |
空闲标识 |
有效 |
无效 |
有效 |
其中各个指令地址信号线中传输的地址均是指向接口控制装置中的标识寄存器,标识寄存器中存储着当前与数据卡进行数据交互的微处理器的标识,称为当前微处理器的标识。各微处理器的标识可以为预先分配给各微处理器的唯一8位标识(ID),例如“00000001”、“00000010”等。请求交互的微处理器首先发送查询总线状态指令以读取标识寄存器中的标识,并判断读取的标识是否为本机标识或空闲标识。若为该微处理器自身的标识,则表示该微处理器已成为当前微处理器,可以执行后续的读写操作。若为空闲标识,例如可以为预设的“00000000”,表示此时没有微处理器要求进行本地总线和数据卡总线的交换。若判断出既不是该微处理器自身标识也不是空闲标识,则微处理器可以定时地向接口控制装置发送查询总线状态指令和申请总线转换指令,直到读取的标识为本机自身标识时,则进行后续的读操作或写操作。当读操作或写操作的交互完成后,当前微处理器可以发送释放指令,将空闲标识写入标识寄存器以释放对数据卡总线的占用,可以令其他待交互的微处理器读取到空闲标识从而执行类似的操作。
本实施例具体为微处理器与数据卡进行读写操作之前执行的获取授权的操作,上述技术方案能够有效的解决接口控制装置对微处理器总线的仲裁问题,使两个或两个以上微处理器可以共享一个数据卡中的数据。并且,具体可以采用CPLD来形成接口控制装置,无须采购专门的芯片,由于 CPLD的通用性强、使用量大,因此可以降低生产成本,并且CPLD的生命周期更长,供货更稳定,所以适用于通信类产品对稳定供货的需求。
数据卡读写方法第二实施例
图2所示为本发明数据卡读写方法第二实施例的流程图。对于很多微处理器来说,通常其并不具备数据卡接口所采用的SPI总线或者SD总线,因此微处理器和数据卡之间的数据通讯需要进行总线转换。本实施例可以上述第一实施例为基础,在某微处理器确定与数据卡进行交互后具体执行微处理器与数据卡通过接口控制装置进行的读操作,如图2所示,包括以下步骤:
步骤A41a、微处理器向接口控制装置发送写地址指令,将待操作地址按照写地址指令中包含的地址写入接口控制装置的地址寄存器中;
步骤A42a、微处理器向接口控制装置发送读启动指令,以指示接口控制装置按照待操作地址读取数据卡中的数据,并存储到接口控制装置的数据寄存器中;
步骤A43a、微处理器向接口控制装置发送读数据指令,以从数据寄存器中读取数据。
本实施例仍以上述实施例中微处理器的本地总线为例来说明,则各指令的内容如表2所示:
表2
指令 |
地址信号线 |
数据信号线 |
WE# |
OE# |
CS# |
写地址指令 |
00001000 |
待操作地址 |
有效 |
无效 |
有效 |
读启动指令 |
00001011 |
|
有效 |
无效 |
有效 |
读数据指令 |
00001100 |
数据寄存器中的数据 |
无效 |
有效 |
有效 |
本实施例以数据卡采用SPI总线模式为例来进行说明。SPI总线技术是一种同步串行总线,可以同时发送和接收串行数据,SPI需要四条线来完成通讯,分别为:输出SPI控制器时钟信号“Sck_spi”的串行时钟线(SCK);输出SPI控制器从设备选择信号“Cs_spi的低电平有效从设备选择线(CS);输出SPI控制器主设备数据输出从设备输入信号“Di_spi”的主设备输出/ 从设备输入数据线(DI);以及输入SPI控制器主设备数据输入从设备输出信号“Do_spi”的主设备输入/从设备输出数据线(DO)。接口控制装置完成微处理器本地总线到数据卡SPI总线之间的转换。
当微处理器发送写地址指令时,按照地址信号线传送的地址将数据信号线传送的待操作地址写入接口控制装置内部的地址寄存器中,该待操作地址是微处理器所要操作的数据卡的空间地址值。而后微处理器发送读启动指令,指示接口控制装置对数据卡进行读取操作。具体的,可以依据所使用总线的相应规范,接口控制装置根据读启动指令中的地址识别到该指令为读指令,则按照地址寄存器中的待操作地址读取数据卡中的数据,将待操作地址输出到SPI总线的“Do_spi”上,则数据卡相应空间位置的数据可通过“Do_spi”输出至接口控制装置中,并存储在接口控制装置内部的数据寄存器中。微处理器随后发送读数据指令,将暂存在数据寄存器中的数据读取到微处理器中。在数据读操作结束后,微处理器可以执行上述步骤A50,写入空闲标识,释放总线资源。
在接口控制装置从数据卡读取数据的过程中,根据数据卡协议,数据卡在数据输出之前包含一个数据输出开始标志,例如8位数据中的一个位数据输出开始标志。当接口控制装置检测到这个数据输出开始标志之后,则开始接收数据,可以通过时钟计时,在接收到8位数据之后为数据接收完成。微处理器向接口控制装置发送读数据指令的时间可以是在发送读启动指令之后的设定时间后发送,即在微处理器发送读启动指令之后即开始计时,当计时达到第一设定门限值时执行步骤A43a,发送读数据指令。例如,可以预先通过测试获知接口控制装置从数据卡读取数据的时间为t,而后可以预先设置微处理器发送读启动指令和读数据指令的时间间隔大于t,例如可以设置2t为第一设定门限值,从而确保微处理器读取数据的正确性。
数据卡读写方法第三实施例
图3所示为本发明数据卡读写方法第三实施例的流程图。与上述第二实施例类似,本实施例具体为微处理器与数据卡之间通过接口控制装置进行写操作的流程。如图3所示包括如下步骤:
步骤A41b、微处理器向接口控制装置发送写地址指令,将待操作地址按照写地址指令中包含的地址写入接口控制装置的地址寄存器中;
步骤A42b、微处理器向接口控制装置发送写数据指令,将待写入数据写入到接口控制装置的数据寄存器中;
步骤A43b、微处理器向接口控制装置发送写启动指令,以指示接口控制装置按照待操作地址将数据寄存器中的数据写入到数据卡中。
类似的,当微处理器采用上述微处理器的本地总线时,除上述表2所示的写地址指令之外,其他指令内容如表3所示:
表3
指令 |
地址信号线 |
数据信号线 |
WE# |
OE# |
CS# |
写启动指令 |
00001010 |
|
有效 |
无效 |
有效 |
写数据指令 |
00001001 |
待写入数据 |
无效 |
有效 |
有效 |
当数据卡采用上述SPI总线时,具体的操作是:微处理器首先发送写地址指令,按照地址信号线传送的地址将数据信号线传送的待操作地址写入接口控制装置内部的地址寄存器中。而后微处理器发送写数据指令,按照地址信号线传输的地址将数据信号线上传输的待写入数据写入接口控制装置内部的数据寄存器中。微处理器再发送写启动指令,将地址寄存器中的待操作地址和数据寄存器中的待写入数据依次分别从接口控制装置内部中输出到SPI总线的“Do_spi”上,待写入数据存入数据卡内部相应的地址空间中。在数据写入数据卡的过程中,根据数据卡协议,数据卡完成数据输入之后会输出一个响应数据到接口控制装置。当接口控制装置检测到这个响应数据之后,数据卡写操作完成,微处理器才可以进行对数据卡的其它操作,与读操作类似,微处理器发送写数据指令和写启动指令之间的时间间隔可以通过预先设定延时来实现。即当微处理器发送写数据指令之后进行计时,当计时达到第二设定门限值时执行步骤A43b。最后微处理器发送释放指令,释放总线资源。
在具体实现上述技术方案时,可以设定读操作和写操作不同时进行,则读操作和写操作可以使用同一数据寄存器。或者,为同时实现读操作和写操 作,或是为提高可靠性,可以为读操作和写操作设定独立的读数据寄存器和写操作寄存器。在上述读操作和写操作过程中,可以通过初始化数据卡来设定数据卡内单位空间的数据长度,例如可以设定为1字节,直至512字节等。数据寄存器设定为具有相应的空间,则通过预先设定,可以控制读操作和写操作过程中传输数据的长度。
为了避免不同微处理器对数据卡内同一地址空间进行重复的写操作而覆盖掉有用数据,可以为不同的微处理器划分相应的写操作地址空间,则在上述步骤A41b之前,还可以执行:
步骤A40b、微处理器从设定范围的地址中选定待操作地址,并将其设置在写地址指令中。
采用上述方案可以避免不当写操作对有用数据的覆盖。微处理器的读操作可以不受此限制,从而实现各个微处理器对一个数据卡内数据的共享。
在上述数据卡读写方法实施例的基础上,还可以在各微处理器发送查询总线状态指令和申请总线转换指令之前进行下述操作:
当微处理器接收到中断信号时,向接口控制装置发送状态读取指令,读取接口控制装置的状态寄存器中所存储的数据卡的状态。
上述技术方案以中断请求的方式使各个微处理器均能够获知数据卡的状态,例如是否插入、是否写保护,进而可以发送指令查询总线状态、申请总线转换,以及进行读操作和写操作。
在本发明数据卡读写方法中,微处理器的总线和指令并不限于上述具体的格式,只要包括相应的指令内容即可控制接口控制装置实现相应的功能。上述的技术方案有效解决了现有专用读卡器芯片仅能通过USB接口与微处理器交互的问题,实现了对微处理器本地总线交互模式的支持,而且实现了多个微处理器对数据卡中数据的共享,满足了用户的不同需求。
数据卡接口控制方法第一实施例
图4所示为本发明数据卡接口控制方法第一实施例的流程图。本实施例的方法是由接口控制装置执行的,具体可以配合上述数据卡读写方法来实施, 如图4所示,包括如下步骤:
步骤B10、当接口控制装置接收到微处理器发送的查询总线状态指令时,按照查询总线状态指令中包含的地址从本地的标识寄存器中读取标识,并将读取的标识反馈给微处理器;
步骤B20、当接口控制装置接收到微处理器发送的申请总线转换指令时,按照申请总线转换指令中包含的地址将微处理器的标识写入标识寄存器中,作为数据卡所连接的当前连接微处理器的标识;
上述步骤B10和B20的先后顺序并不固定,微处理器可以定时地发送查询总线状态指令和申请总线转换指令,接口控制装置当接收到某个指令时按照上述步骤执行相应操作即可。
步骤B30、接口控制装置进行微处理器与数据卡之间的读操作和/或写操作;
步骤B40、当接口控制装置接收到微处理器发送的释放指令时,按照释放指令中包含的地址将空闲标识写入标识寄存器。
本实施例为接口控制装置所实施的对数据卡接口的控制方法,可以与本发明的数据卡读写方法配合实施,该接口控制装置较佳的是可以采用CPLD来实现。具体的,当微处理器采用本地总线时,接口控制装置所接收到的微处理器的指令较佳的是如上表1所示。
本实施例的技术方案能够支持多个微处理器与一个数据卡相连,共享其中的数据,满足用户不同的使用需求。并且,具体可以采用CPLD来形成接口控制装置,无须制作专门的芯片,因此可以降低生产成本。
数据卡接口控制方法第二实施例
图5所示为本发明数据卡接口控制方法第二实施例的流程图。具体应用中,微处理器和数据卡可能采用不同的总线模式,则在进行读写操作时需要进行总线转换。如图5所示,在上述数据卡接口控制方法第一实施例的基础上,接口控制装置进行微处理器与数据卡之间的读操作具体包括如下流程:
步骤B31a、当接口控制装置接收到微处理器发送的写地址指令时,按照 写地址指令中包含的地址将写地址指令中的数据写入本地的地址寄存器中作为待操作地址;
步骤B32a、当接口控制装置接收到微处理器发送的读启动指令时,按照待操作地址读取数据卡中的数据,并存储到本地的数据寄存器中;
步骤B33a、当接口控制装置接收到微处理器发送的读数据指令时,从数据寄存器中读取数据到微处理器中。
本实施例的数据卡接口控制方法可以与本发明数据卡读写方法第二实施例的技术方案配合执行,当微处理器具体采用本地总线,而数据卡采用SPI总线时,接口控制装置可以实现总线转换功能。具体指令的较佳格式可以如上表2所示。
数据卡接口控制方法第三实施例
图6所示为本发明数据卡接口控制方法第三实施例的流程图。如图6所示,在上述数据卡接口控制方法第一实施例的基础上,接口控制装置进行微处理器与数据卡之间的写操作具体包括如下流程:
步骤B31b、当接口控制装置接收到微处理器发送的写地址指令时,按照写地址指令中包含的地址将写地址指令中的数据写入本地的地址寄存器中作为待操作地址;
步骤B32b、当接口控制装置接收到微处理器发送的写数据指令时,将写数据指令中的数据写入本地的数据寄存器中;
步骤B33b、当接口控制装置接收到微处理器发送的写启动指令时,按照待操作地址将数据寄存器中的数据写入到数据卡中。
本实施例的数据卡接口控制方法可以与本发明数据卡读写方法第三实施例的技术方案配合执行,当微处理器具体采用本地总线,而数据卡采用SPI总线时,接口控制装置需要实现总线转换功能。具体指令的较佳格式可以如上表3所示。
本发明上述实施例的技术方案实现了多个微处理器与数据卡之间的数据交互,多个微处理器可以共享一个数据卡中的数据。还实现了总线转换功能, 使微处理器与数据卡的交互不受总线形式的限制,兼容性更强,通用性更强。例如,数据卡还可以采用SD总线,SD总线相比于SPI总线来说增加了三根数据信号线,实现的方式基本类似。
在上述技术方案的基础上,该接口控制装置还可以包括中断处理功能,主要作用是检测数据卡是否插入、是否处于写保护等状态,则在微处理器进行数据读写操作的过程中,还可以包括下述步骤:
接口控制装置中的比较模块采集数据卡的插座信号,了解数据卡的当前状态“current_state”,并将采集的插座信号与本地状态寄存器中保存的插座信号进行比较,即将“current_state”与历史状态“sd_status”进行比较,当比较的结果为不一致时,说明数据卡的状态已经变化,则以采集的插座信号更新本地状态寄存器中的插座信号,并向接口控制装置上所连接的各个微处理器发送中断信号,以触发各微处理器对状态寄存器的读取,微处理器在获知数据卡的状态后方可进行相应的操作。
具体的,接口控制装置中可以设置一中断处理模块,与数据卡的插座信号相连,例如数据卡设置第一开关(SW1)、第二开关(SW2)和第三开关(SW3),通过其上的电平来表征数据卡所处的状态,具体的SW1直接下拉到地,SW2可以通过4.7K上拉,SW3通过4.7K上拉。如表4所示,SW2和SW3的组合状态可以指示数据卡的四种状态。
表4
|
SW2 |
SW3 |
卡存在(写保护) |
0 |
1 |
卡存在(没有写保护) |
0 |
0 |
卡不在位 |
1 |
1 |
上述技术方案利用数据卡上的结构设计,可以定时地对数据卡的状态进行检测,并以中断请求的方式触发各微处理器来读取状态寄存器中的数值,以便微处理器能够获知数据卡的状态而进行相应的操作。
数据卡接口控制装置第一实施例
图7所示为本发明数据卡接口控制装置第一实施例的结构示意图,且具 体示出了微处理器采用本地总线、数据卡采用SPI总线时与数据卡接口控制装置的连接关系。如图7所示,该数据卡接口控制装置200具体包括:用于插接微处理器100的至少两个微处理器接口210;用于插接数据卡300的数据卡接口220;标识寄存器230,用于存储数据卡300所连接的当前微处理器的标识或空闲标识;仲裁模块240,该仲裁模块240包括查询响应单元241和写入响应单元242。其中,查询响应单元241与微处理器接口210和标识寄存器230相连,用于当接收到微处理器100发送的查询总线状态指令时,按照查询总线状态指令中包含的地址从标识寄存器230中读取标识,并反馈给微处理器100;写入响应单元242与微处理器接口210和标识寄存器230相连,用于当接收到微处理器100发送的申请总线转换指令时,按照申请总线转换指令中包含的地址将微处理器100的标识写入标识寄存器230中,作为数据卡300所连接的当前连接微处理器的标识,且当接收到微处理器100发送的释放指令时,按照释放指令中包含的地址将空闲标识写入标识寄存器230。该数据卡接口控制装置200还包括一转换模块250,与微处理器接口210和数据卡接口220相连,用于进行微处理器100与数据卡300之间的读操作和/或写操作。
本发明的数据卡接口控制装置可以执行本发明的数据卡接口控制方法,且可以配合微处理器实施本发明的数据卡读写方法。该技术方案能够实现多个微处理器与一个数据卡之间的数据交互,能够共享一个数据卡中的数据,满足用户的多种需求。
数据卡接口控制装置第二实施例
图8所示为本发明数据卡接口控制装置第二实施例的结构示意图,在上述实施例的基础上,该数据卡接口控制装置200还可以包括:用于存储待操作地址的地址寄存器270;用于存储读取自或写入到数据卡300中的数据寄存器280。且该转换模块250具体包括:写地址单元251、读启动单元252、读数据单元253、写数据单元254和写启动单元255。其中,写地址单元251与微处理器接口210和地址寄存器270相连,用于当接收到微处理器100发送的写地址指令时,按照写地址指令中包含的地址将写地址指令中的数据写 入地址寄存器270中作为待操作地址;读启动单元252与微处理器接口210、地址寄存器270、数据寄存器280和数据卡接口220相连,用于当接收到微处理器100发送的读启动指令时,按照待操作地址读取数据卡300中的数据,并存储到数据寄存器280中;读数据单元253与微处理器接口210和数据寄存器280相连,用于当接收到微处理器100发送的读数据指令时,从数据寄存器280中读取数据到微处理器100中;写数据单元254与微处理器接口210和数据寄存器280相连,用于当接收到微处理器100发送的写数据指令时,将写数据指令中的数据写入数据寄存器280中;写启动单元255与微处理器接口210、地址寄存器270、数据寄存器280和数据卡接口220相连,用于当接收到微处理器100发送的写启动指令时,按照待操作地址将数据寄存器280中的数据写入到数据卡300中。
在上述实施例的基础上,接口控制装置200还可以包括:状态寄存器290“sd_status”、比较模块2100和中断模块2110。其中,状态寄存器290用于存储数据卡300的插座信号;比较模块2100与数据卡接口220和状态寄存器290相连,用于采集数据卡300的插座信号,并与状态寄存器290中保存的插座信号进行比较;中断模块2110与比较模块2100、状态寄存器290和微处理器接口210相连,用于当比较结果不一致时,更新状态寄存器290,并向所连接的各微处理器100发送中断信号。状态寄存器290可以设置为相对于微处理器100为只读状态,具体可以通过8位寄存器来实现,例如,可以设置“0x01”表示“卡存在且写保护”;“0x02”表示“卡存在且没有写保护”;“0x03”表示“卡不在位”。
本发明的数据卡接口控制装置可以实施本发明数据卡接口控制方法任一实施例的技术方案,并连接多个微处理器,配合微处理器执行本发明的数据卡读写方法实施例。通过本发明数据卡接口控制装置上的各寄存器和功能模块可以实现对当前微处理器的仲裁,合理为各微处理器分配总线资源,从而实现了多个微处理器可以共享同一数据卡中的数据,满足了用户的不同需求。
另外,本发明的数据卡接口控制装置可以实现微处理器和数据卡之间的 总线转换,使数据卡的应用更加灵活,不受总线形式的限制。例如,微处理器接口可以为本地总线接口,包括地址总线、数据总线和控制总线。数据卡接口为串行外围设备接口或SD总线接口,包括串行时钟线、从设备选择线、主设备输出/从设备输入数据线和主设备输入/从设备输出数据线。通过调整接口控制装置内寄存器的大小即可以使其适用于为不同数据总线宽度的微处理器提供总线转换功能,例如:8位、16位、32位和64位等,兼容性较强。该接口控制装置通过增加标识寄存器可存储的标识数量即可实现连接微处理器数量的增加,扩展性能好。
进一步的,该接口控制装置可以利用数据卡上的插座信号,以中断信号的形式触发各微处理器对数据卡状态的检测。
本发明的数据卡接口控制装置较佳的是可以采用CPLD来形成具有上述功能模块的集成电路,其通用性强,而且设计开发成本低,有利于推广应用。对于某些特定的应用领域,例如路由器、交换机等通信设备,其具有较长的使用寿命以及对专用芯片的需求量较少,这对于作为消费类产品的专用芯片来说,会提高供货成本。而且这类专用芯片的更新换代快、生命周期短,所以当通讯设备在数年后需要采购专用芯片时,则往往会发生呆料的问题。本发明采用CPLD制成的接口控制装置可以有效控制物料材料,保证了稳定供货,且降低了采购成本。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。