基于8位微控制器控制硬盘进行HDTV码流读写

[09-12 17:48:36]   来源:http://www.88dzw.com  单片机学习   阅读:8928

文章摘要:unsigned char ReadSector(unsigned long point,unsigned char *Buffer){unsigned int i,k;WriteBYTE(CMD,6,0xe0); //LBA模式WriteBYTE(CMD,5,point>>16); //LBA模式下的高16位地址WriteBYTE(CMD,4,point>>8); //LBA模式下的高8位地址WriteBYTE(CMD,3,point); //LBA模式下的低8位地址WriteBYTE(CMD,2,0x80); //一次读写的扇区数//Issue read secto

基于8位微控制器控制硬盘进行HDTV码流读写,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
unsigned char ReadSector(unsigned long point,unsigned char *Buffer){

unsigned int i,k;

WriteBYTE(CMD,6,0xe0); //LBA模式

WriteBYTE(CMD,5,point>>16); //LBA模式下的高16位地址

WriteBYTE(CMD,4,point>>8); //LBA模式下的高8位地址

WriteBYTE(CMD,3,point); //LBA模式下的低8位地址

WriteBYTE(CMD,2,0x80); //一次读写的扇区数

//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流和卫星节目的仪器。




上一页  [1] [2] [3] [4] [5] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《基于8位微控制器控制硬盘进行HDTV码流读写》相关文章

分类导航
最新更新
热门排行