8250的初始化 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【meiwen.anslib.com - 电脑资料】

  8250的初始化

  在用8250进行异步通信之前,要对其进行初始化,

8250的初始化

。初始化通常包括以下四步:

  ①设置除数寄存器。

  初始化的第一步是根据波特率对除数寄存器进行设置。由于除数寄存器和接收缓冲器/发送保持器共用端口地址,所以写入除数寄存器之前,要先将线路控制寄存器LCR的最高位DLAB置位,然后按波特率与除数的对应关系对两个除数寄存器分别进行设置。下面是

  设置第一个通信接口COMl的波特率为2400的C程序段:

  outpoab(0x3fn,0x80);/*写LCR,使DLAB为1*/

  outpoab(0x3f8,0x30);/*写除数寄存器的低字节(参看表12.3)*/

  outportb(0x3f9,0);/*写除数寄存器的高字节(参看表12.3)*/

  ②设置线路控制寄存器LCR

  这一步是确定通信的数据格式(帧的格式),即数据位的位数、停止位的位数、是否进行奇偶校验、校验的类型等,同时使LcR的最高位DLAB复位,为后续的初始化过程中寄存器的寻址做准备,

电脑资料

8250的初始化》(http://meiwen.anslib.com)。下面的一个C语句是设置COMl的数据格式为7个数据位,2个停止位、采用奇校验:

  outportb(0x3fb,OxOe);

  ③设置Modem控制寄存器MCR

  通常情况下设定低2位都为1,使8250输出DTR和RTS。即便系统中不使用这两个信号,这样设置也没有关系。如果要使用中断,位3(OUT2)应设置为1。在正常情况下,MCR的位4(LOOP)应设置为0。如果要对8250进行自检,则应设置为l,这样,发送的数据能被自己接收,而不必在外部接线。

  ④设置中断允许寄存器IER

  若不采用中断,应将IER的低4位都设置成0;若采用中断,则应根据需要对低4位进行设置,以确定四类中断事件的哪些可产生中断。一般情况下,四类中断都应置成允许。

最新文章