外设扩展插槽
中华学习机系统设计时把$C000—$CFFF地址空间辟为外设地址区。“小蜜蜂-Ⅰ”设计了八个扩展插槽,供用户插入各种接口卡。其中四个已用作专用槽口0\(^{#}\)槽用于语言卡,把系统读写存储器扩展到64K字节,1#槽已用于在主机板上设置一个打印机接口;5\(^{#}\)槽用于汉字处理;6#槽用于软磁盘驱动器接口。而为用户空出2\(^{#}\)、3#、4\(^{#}\)、7#槽口,安排在外设扩展箱中,由50芯插座将扩展箱与主机相接。各引脚定义如图13所示。这些信号包括连接一个外设所需的总线、时钟、地址译码输出,还有四档电源。下面说明一下几个地址译码信号(其它信号的确切含义和使用方法请参阅用户说明书)。

1\(^{#}\)引脚(I/OSEL-):是向外设输出的地址选通信号,低电平有效。当CPU访向$CN××地址区间时,在φ\(_{2}\)周期变为低电平,N是扩展插槽号,N为0~7。此信号选通256个地址。各个插槽上此信号选通的地址不一样。这个地址空间可设置卡工作程序、引导程序,也可用于硬件选通译码。
20\(^{#}\)引脚(I/OSTB-):向外设输出的地址选通信号,低电平有效。当CPU访向$C800—$CFFF时,它在φ\(_{2}\)周期变低。一般用作接口卡工作程序区。由于可能有很多接口卡插在扩展槽内共用这一地址空间,某卡在进入这一空间前关断其它卡对此空间的占据。
41\(^{#}\)引脚(DEVSEL-):主机输出的地址选通信号,低电平有效。当CPU访问$0C0(N+8)地址空间时,它在φ\(_{2}\)期间有效。N为插槽号(0~7)。这个信号选通16个地址。各个插槽选通的地址区间不一样。常用作卡译码地址选通信号。
扩展槽上主机板输出的信号,驱动能力有限。扩展箱内向外设供应的±5V、±12V四档电源对负载也有限制,使用时要加以考虑。
打印机接口
打印机接口的作用是:①在接口上锁存八位数据或命令供打印机读取;②接口上数据稳定后向打印机发一选通脉冲STB,通知数据有效;③通过接口从打印机回收一打印机状态信息“BUSY”,决定可否进行①、②两项工作。所有这些,都在打印程序控制下进行。这些程序一部分存放于I/OSEL-选通的区间($C1××),大部分放在I/OSTB-选通的$C800-$CFFF空间。
打印机接口电路如图14。来自打印机的“BUSY”信号通过一三态门接入系统数据总线DB\(_{7}\),当CPU发一读$C1C0指令时,在φ2周期$C1××出现一个负脉冲,同时地址线低八位中A\(_{7}\)=1,或非门I9输出为“0”,所以I\(_{8}\)输出为“1”,又当此时A0=0,I\(_{7}\)输出为1,I6输出为1,故三态门接通。CPU即可从DB\(_{7}\)读得“BUSY”是“0”或“1”。由于这里是部分译码,$C1C0是等效重复地址之一($C100~11地址都可进行读“BUSY”状态)。读取“BUSY”,后,接着用软件判别,若BUSY=1,表示打印机“忙”不能向其发送数据,反之则可发送。发送数据只要执行一条写$C090地址的命令,这个命令在CPU周期通过地址译码,也产生一负脉冲。此脉冲上升沿把CPU的八位数0 \(_{7}\)送到74LS273的Q0~Q\(_{7}\),并锁存。$C090经延时产生STB-脉冲,此脉冲出现在Q0~Q\(_{7}\)数据稳定之后,告知打印机数据有效,可以读取。有关时序见图15所示。


软磁盘驱动器接口电路
用磁带作外存的优点是价格低廉,但它存取速度慢且易出错;而软盘用作外存的存取速度快且准确,但价格较高,一个较完善的计算机系统都选用软盘(及软盘驱动器)作外存。
“小蜜蜂—Ⅰ”型机系统采用5\(\frac{1}{4}\)英寸单面双密度软盘驱动器,可选用51;4英寸单面双密度或双面双密度软盘。经过格式化的每个单面双密度软盘分成35个磁道,每个磁道分16个扇区,每个磁道在一个扇区中的存储量为256个字节,故每块单面双密度软盘的存储量为35×16×256=143360个字节。
XMF-Ⅰ微机软盘驱动器接口占用主机的第6号扩展插槽。启动软盘驱动器可用HR#6-命令(BASIC提示符下),也可在监控状态下执行$C600G-命令。
软盘驱动器接口电路包括:①固化在$C600~$C6FF中的磁盘引导程序;串/并行数据的相互转换电路;控制信号产生电路; 软盘读/写时,对串行数据进行解调和调制以及读/写时序控制电路。
XMF-Ⅰ型微机将$C600~$C6FF这段引导程序固化在主机板的2764EPROM中,功能是:①磁头复位,即将磁头退回到0磁道0扇区;②从0磁道0扇区开始读入256个字节的内容,存放到从$0801开始的内存单元中;③跳转到$0801,从$0801开始执行刚刚调入的程序。
由于软盘驱动器是逐位存储和送出数据,而主机发送和接收的是并行数据,故XMF—Ⅰ型机用74LS323完成串/并行数据转换,图16是74LS323的引脚图。它的并行数据输入口A/Q\(_{A}\)~H/QH直接到系统的数据总线,SR(和SL)为串行右移(和左移)输入端,用于检测磁盘的写保护标志或串行数据输入。若磁盘写保护,则写保护标志WPROT=1,经过右移操作后,CPU检测到D\(_{7}\)=1,CPU拒绝进行写操作。读数据时,从磁盘上读出的串行数据经过解调,由SL端逐位移入74LS323,经左移锁存操作,即可得到并行数据。Q'A为串行数据输出端,其输出数据经调制写入磁盘。S0和S\(_{1}\)为工作方式控制端,可用来设定该集成电路并行数据打入、右移、左移和保持四种工作方式。

XMF—Ⅰ的每个扩展槽可使用16个I/O口地址,驱动器占用的第六号插槽的I/O口地址为$C0E0~$C0EF,各口地址功能为$C0E0~$C0E7,控制步进马达四个相位的开启和关闭;$C0E8/$C0E9控制磁盘机的OFF/ON;$C0EA/$C0EB用来选A/B磁盘机;$C0EC~$C0EF为读/写控制。
驱动器接口用一片74LS259(8位可寻址锁存器)产生控制逻辑,74LS259引脚见图17。它的输入端ABC分别接地址线的A\(_{1}\)A2A\(_{3}\)线,用来选择内部锁存器。A0接它的数据输入端D,通过A\(_{3}\)A2A\(_{1}\)选定某锁存器,该锁存器输出数据值反映输入端D(A0)数据值。A\(_{0}\)3A\(_{2}\)A1的排列形成16种控制状态,用以实现上述各口地址功能。该集成电路的Q\(_{6}\)Q7组成四种状态00、01、10和11,分别用于读出磁盘数据、写入数据、检测写保护标志和控制串/并转换IC块74LS323并行装入数据。

驱动器接口电路对读/写时序的控制电路及解调/调制电路如图18所示。写入数据前,先要对串行数据进行调制,即把“0”、“1”数据交换成磁盘易于接受的信息。串行数据调制前后的波形见图19。从图里看得出,在串行数据的每个上升沿到来时,被调制输出的电平翻转一次。图8中,PROM和74LS174(六D触发器)构成反馈回路,用来产生读/写时序。由74LS259来的Q\(_{6}\)Q7控制该电路的工作状态,产生上面所述Q\(_{6}\)Q7的四种功能。


图20是驱动器接口电路的完整逻辑图。DEV6-是从系统扩展插槽来的设备选择信号,当地址为$C0EX,且在时钟φ\(_{0}\)。正半周(CPU周期)时,DEV6-为低电平,它使8位可寻址锁存器74LS259使能,这时A0\(_{3}\)A2A\(_{1}\)才起作用。φ0~φ\(_{3}\)是控制步进马达四个相位的步进脉冲信号,RDDATA和WRDATA分别是从磁盘中读出数据和写入数据,ENBL1和ENBL2分别是选择驱动器A和B的控制信号。驱动器接口电路单独装在一块板上,装在扩展箱中。控制驱动器的控制信号用一条20芯电缆连至驱动器。(乌振声 项长顺)
