CoolRunner-II器件的设计范例及其实现
发布时间:2008/9/19 0:00:00 访问次数:434
ts设置为正向模式,格式字符和接口字符预先确定。由于应用了t=0协议,因此在复位应答阶段没有tck字符。共有19个字节,包括历史字符。为了简化设计,我们对接收到的字节进行计数,以确定有效数据。没有检验位,也没有处理其他协议的分支操作。在这种情况下,只有acos1卡可以用于此读卡器。
(1)smart card control∶smart card控制逻辑
如图1和如图2所示分别为smart card控制逻辑框图和状态机,当卡被插入到卡适配器时状态机就会被使能,按照iso 7816-3标准激活sd卡。coolrunner-ii设备设置reset引脚为高,状态机进入等待状态wait state。等待卡发出的低电平信号,即ts起始位。
图1 smart card控制逻辑框图
图2 smart card控制逻辑状态
波特率计数器baud rate counter用来控制位宽,无论是接收位还是发送位,计数值都是372并以同步数据传输。接收数据时,当计数器值为186时采样接收位,这恰好是接收位的中央。
计数器bit counter用来统计发送/接收字符的位数。
计数器byte counter用来统计发送/接收的字节数,字节数还被用来确定读数据周期或发送命令周期的结束。
此acos1卡接收到19个复位应答字符后,状态机进入发送命令状态send command。smart card控制器这时会按照t=0协议,准备好发送命令和接收响应。解码器会检测字符计数器以确定什么时候发送命令、发送什么命令,以及多少个字符将会被接收到。发送到卡的第1个命令由5个字节组成,即80、a4、00、00和02,当卡回应一个字节a4后,控制器发送两个字节,即f0和00,smart card日向应状态字节为91和00。从t=0命令表中可以看出,a4
用来选择文件地址,f0和00为选定的文件地址。接下来的命令是选择数据记录并取数据,所有的数据和命令长度都己经定义并且是固定的。在此设计中,io_rw控制移位寄存器从card io读数据或从data encoder移位数据到card_io,所有操作都是基于字节计数器的。在本设计中,姓名记录位于第38~69个字节。性别、状态和年龄记录是字节92、93和94;存款余额记录是字节126和127。data_ready信号用来滤除无用数据,此信号被sram接口用来控制从smartcard到sram写数据。
(2)main control logic(主控逻辑)
主控状态机用来控制各功能模块的工作顺序,并控制从sram读数据,然后将其解码后发给lcd控制逻辑以供显示。主控逻辑包含一个延迟计数器,用其拆分发送到lcd上显示的数据,因此显示在lcd上的每条信`患之间将会有1~2 s的间隔。主控逻辑框图如图3所示,流程如图4所示。状态机上电进入idle状态,等待smart card控制器读数据,并将其存储于sram中;当smartcard done变高,状态机进入standby状态,等待lcd_ready。卡名与lcd显示采用的是相同的ascii格式,因此不需要解码卡名字符,所有从sram读取的字符将会被送到lcd显示。下一个记录为性别,解码后如果是“1”,则代表男性; “2”代表女性。之后是状态记录,解码后如果是“1”,则代表单身; “2”代表已婚。年龄信息以二进制存储在smart card中,发送到lcd之前必须转换为ascii码,二进制码到ascii码转换模块独立于顶层模块。
图3 主控逻辑框图
图4 主控逻辑流程
(3)sram interface:sram接口
sram接口由主控逻辑控制,sram_w为sram接口写使能信号,在读smart card过程中保持为高。当主控状态机进入standby状态写数据到lcd屏时,地址计数器将被复位,然后数据按照存储顺序被读出。
(4)lcd control: lcd控制
lcd控制逻辑用来初始化lcd屏,并将解码数据送到lcd显示。此模块使用简化的时序控制lcd显示,每个字符的写周期被设置为30 000个时钟周期,这个值远远高于lcd控制器所要求的数百毫秒。
(5)设计范例和实现
源代码及测试序可从xi1inx 网站上下载。本设计在xc2c256中实现,资源使用率如表所示。
如表 资源使用率
欢迎转载,信息来自维库电子市场网(www.dzsc.com
ts设置为正向模式,格式字符和接口字符预先确定。由于应用了t=0协议,因此在复位应答阶段没有tck字符。共有19个字节,包括历史字符。为了简化设计,我们对接收到的字节进行计数,以确定有效数据。没有检验位,也没有处理其他协议的分支操作。在这种情况下,只有acos1卡可以用于此读卡器。
(1)smart card control∶smart card控制逻辑
如图1和如图2所示分别为smart card控制逻辑框图和状态机,当卡被插入到卡适配器时状态机就会被使能,按照iso 7816-3标准激活sd卡。coolrunner-ii设备设置reset引脚为高,状态机进入等待状态wait state。等待卡发出的低电平信号,即ts起始位。
图1 smart card控制逻辑框图
图2 smart card控制逻辑状态
波特率计数器baud rate counter用来控制位宽,无论是接收位还是发送位,计数值都是372并以同步数据传输。接收数据时,当计数器值为186时采样接收位,这恰好是接收位的中央。
计数器bit counter用来统计发送/接收字符的位数。
计数器byte counter用来统计发送/接收的字节数,字节数还被用来确定读数据周期或发送命令周期的结束。
此acos1卡接收到19个复位应答字符后,状态机进入发送命令状态send command。smart card控制器这时会按照t=0协议,准备好发送命令和接收响应。解码器会检测字符计数器以确定什么时候发送命令、发送什么命令,以及多少个字符将会被接收到。发送到卡的第1个命令由5个字节组成,即80、a4、00、00和02,当卡回应一个字节a4后,控制器发送两个字节,即f0和00,smart card日向应状态字节为91和00。从t=0命令表中可以看出,a4
用来选择文件地址,f0和00为选定的文件地址。接下来的命令是选择数据记录并取数据,所有的数据和命令长度都己经定义并且是固定的。在此设计中,io_rw控制移位寄存器从card io读数据或从data encoder移位数据到card_io,所有操作都是基于字节计数器的。在本设计中,姓名记录位于第38~69个字节。性别、状态和年龄记录是字节92、93和94;存款余额记录是字节126和127。data_ready信号用来滤除无用数据,此信号被sram接口用来控制从smartcard到sram写数据。
(2)main control logic(主控逻辑)
主控状态机用来控制各功能模块的工作顺序,并控制从sram读数据,然后将其解码后发给lcd控制逻辑以供显示。主控逻辑包含一个延迟计数器,用其拆分发送到lcd上显示的数据,因此显示在lcd上的每条信`患之间将会有1~2 s的间隔。主控逻辑框图如图3所示,流程如图4所示。状态机上电进入idle状态,等待smart card控制器读数据,并将其存储于sram中;当smartcard done变高,状态机进入standby状态,等待lcd_ready。卡名与lcd显示采用的是相同的ascii格式,因此不需要解码卡名字符,所有从sram读取的字符将会被送到lcd显示。下一个记录为性别,解码后如果是“1”,则代表男性; “2”代表女性。之后是状态记录,解码后如果是“1”,则代表单身; “2”代表已婚。年龄信息以二进制存储在smart card中,发送到lcd之前必须转换为ascii码,二进制码到ascii码转换模块独立于顶层模块。
图3 主控逻辑框图
图4 主控逻辑流程
(3)sram interface:sram接口
sram接口由主控逻辑控制,sram_w为sram接口写使能信号,在读smart card过程中保持为高。当主控状态机进入standby状态写数据到lcd屏时,地址计数器将被复位,然后数据按照存储顺序被读出。
(4)lcd control: lcd控制
lcd控制逻辑用来初始化lcd屏,并将解码数据送到lcd显示。此模块使用简化的时序控制lcd显示,每个字符的写周期被设置为30 000个时钟周期,这个值远远高于lcd控制器所要求的数百毫秒。
(5)设计范例和实现
源代码及测试序可从xi1inx 网站上下载。本设计在xc2c256中实现,资源使用率如表所示。
如表 资源使用率
欢迎转载,信息来自维库电子市场网(www.dzsc.com
上一篇:HyperLynx工具设计简介
上一篇:LabVIEW的创建程序框图