基于8位微控制器控制硬盘进行HDTV码流读写
teBYTE(CMD,2,0x80); //一次读写的扇区数
《基于8位微控制器控制硬盘进行HDTV码流读写(第5页)》
本文链接地址:http://www.oyaya.net/fanwen/view/149125.html
//Issue read sector command...
WriteBYTE(CMD,7,0x20); //0x20多为扇区读命令
Timer 10mSec=10000;
while((ReadBYTE(CMD,7)&0x08)!=0x08 && Timer 10mSec); //等待DRQ=1或者timeout
if(Timer 10mSec= =0)return 0xFF;
//Fetch the sector...
LSBDATA=ALLINPUT;
//Select address and activate CS
SetAddress(CMD,0);
for(k=0;k<0x80;k++)
for(i=0;i<512;i+=2){ //一次读两字节
nDIOR=0; //硬盘的读时钟
WCK=1;
WCK=0;
nDIOR=1;
}
nCS1FX=1; //复位CS
nCS3FX=1;
return ReadBYTE(CMD,1); //返回错误寄存器的信息
}
本文是“第三代码流回放机研制”课题的一个重要组成部分。本方案利用微控制器对硬盘进行基于LBA模式下的读写操作(不用操作系统),硬软件简洁可靠,技术上也解决前期产品的两个难题:
(1)一些旧机器的BIOS不支持INT 13h Extension,无法访问8.4G以上硬盘空间;
(2)WINDOWS操作系统不支持存储1.2G以上码流文件。
将此系统逆向设计,能够研发出适时录制TS流和卫星节目的仪器。
《基于8位微控制器控制硬盘进行HDTV码流读写(第5页)》