|
利用PC的并行端口实现与20比特 型ADC的连接
|
20 Bit ADC Connecting With Parallel Port Of PC
|
在大多数 型模-数转换器(ADC)应用中,串行数据传输都是通过串行端口来进行的。微控制器根据要求对串行端口进行配置--设定波特率和起止位、对串行端口进行初始化等等。
在本文所介绍的简单而廉价的设计方案中,ADC(AD7703)通过PC的并行端口实现了与电脑的连接(图1)。控制软件是采用图形语言LabVIEW
Version6.0编写的,该软件通过LPT1状态端口(0x379)中的一个比特--即DB-25连接器的15脚(LPT端口的ERROR输入端)来收集数据。可以用任何更高级的语言(比如Turbo
“C”、C++、VB、VC等)来编写软件。AD7703采用同步外部时钟(SEC)方式进行连接,以实现同步串行数据传输与主PC的直接连接。
一旦ADC完成转换操作,其Data Ready(DRDY)脚即由高电平变为低电平。ADC的DRDY输出被连接至PC的LPT1端口的10脚(确认输入端)。控制软件检测DRDY,通过1脚(数据选通输出端)将ADC的CS(芯片选择)设为低电平,并由ADC接收最高有效位(MSB)。在接收MSB之后,它通过14脚(自动换行输出端)生成一个串行时钟输出(SCLK),以便从ADC获得剩余的19个比特。
一旦全部20比特接收完毕,CS 即被设定为高电平,以使ADC将这些新的数据设置在其三态输出缓冲器中。该程序将继续下去,而获取的数据将被显示在LabVIEW前面板上的数字和模拟配电板式仪表上(见图2)。
由于串行20比特数据是通过15脚获得的,故控制软件根据位的位置来移动剩下的大多数位。某些位被右移,将其他不需要的位设定为0。最后,由一个20字节字的逻辑OR函数生成获取信息的20比特图形。
例如,第20个MSB位将成为第1个传送用位。该位必须被设为上述20字节字的第20个位置。于是,通过第4个(D3)位接收的数据不得不左移16个位置以将其形成为第20个位。
同样,通过该D3位接收的下一个MSB被左移15个位置以将其指定为第19个位,依此类推。在此数据构成序列中,一旦20比特图形的第4个位(LSB4)出现,它不需要进行任何移动,原因是它实际上是D3位。对于第三个位(D2),需要右移1个位置。D1和D0位则分别需要右移2个和3个位置。
这种采取移动并最终进行逻辑OR操作的方法利用通过并行端口的一个脚接收的串行数据生成了精确的20比特数据模式。LabVIEW“虚拟仪表”(Virtual
Instrument)程序在SCLK和串行数据读取之间提供了125 s的延时(即导入功能),这就把数据传送速率设定在了制造商建议的最大值--4kHz上。该延时将使得读周期精确地在数据位的中点进行读取操作,以避免不当数据读取的发生。
对于任何的 型ADC,设计者都可以采用这种简单、低成本的方法。不过,对于每个字节中包含1个起始位和1个停止位的ADC来说,需要对程序稍做修改。
|
|