3 CF卡读数据
从 CF卡读取一个扇区的数据,如图 3所示。首先根据表 1所示的控制命令设定 8位工作模式、设置读取的扇区数目、相应地址和访问模式;然后发送读命令(0x20),等待 CF卡准备就绪后,从数据寄存器中连续读取一个扇区的数据放入到数据缓冲区。
4 CF卡读数据源程序
由于篇幅限制,这里仅给出部分程序。
always @(posedge clk or negedge reset)
begin if((set_finished==0)||((cf_to_ram1)&(ram1_finished==0))||((cf_to_ram2)& (ram2_finished==0))||((cf_to_ram2_first)&(ram2_finished==0)))
begin if(time_cont <= 166) begin
time_cont <= time_cont +1; end else begin
time_cont <= 0; end
end if(time_cont == 26) begin
ceaddr <= `features_wr ; write_data <= `features_data; write_start <= 1;
end if(time_cont == 28) begin
iowr <= 0; end if(time_cont == 34) begin
iowr <= 1; end if(time_cont == 35) begin
ceaddr <= 5'b11111; write_start <= 0; end
end
5 结束语
本设计采用 FPGA读写 CF卡,既利用了 FPGA的内部资源丰富和设计方便的优点,同时利用了 CF卡容量大、体积小和价格低廉等优点,给出了高效读写 CF卡的方法,该方法已成功应用于实际系统中。