三星ARM处理器S3C4510B的HDLC通道使用及编程
5. 将发送帧描述符的OWERSHIP位设置为DMA所有。
6. 使能HDLC的DMA发送。
完成上面各步骤后,HDLC通道的DMA机制会自动将BUFFER中的数据拷贝到HDLC通道
的TxFIFO中发送出去。一帧发送完毕后,4510自动将已使用的发送BUFFER描述符的OWERSHIP位设置为CPU所有,并将帧描述符指针寄存器HDMATxPTR中的内容更新为下一个未使用的发送BUFFER描述符地址。
3.2.2:HDLC通道数据发送中断处理过程
当一帧数据通过DMA方式发送完毕,或者发送过程中出现了可引起中断的异常情况,此时软件会进入中断处理程序。引起中断的情况中断控制寄存器的设置中已做了说明。在我们的编程中,HDLC通道发送中断处理过程主要完成以下一些功能:
1. 进入中断后,首先清除4510中断指示寄存器INTPEND中相应的标志位。
2. 如果DMA发送成功,则进行数据帧发送成功状态计数,并清除HDLC通道状态寄存器HSTAT中的相应状态位。
3. 如果发送出现异常,则完成相应的异常状态计数,并清除HDLC通道状态寄存器HSTAT中的相应位。其中有两个异常会影响以后的DMA操作,一:发送下冲异常(TxU),发生此异常时,处理器会自动禁止DMA发送功能,因此下一次发送时必须重新使能DMA发送功能;二:下一个发送帧描述符指针为空异常(DTxNL),发生此异常时,说明建立的DMA发送BUFFER描述符链表结构出现了错误,因此需要重新初始化DMA发送BUFFER描述符链表结构。
4. 做完上述处理可关闭HDLC通道的DMA发送功能,等待有数据需要发送时再重新打开,也可以不关闭。
3.3: HDLC通道数据接收工作原理及中断处理过程
3.3.1:HDLC通道数据接收工作原理
DMA方式下HDLC通道的数据接收工作主要在HDLC通道初始化和DMA接收中断处理中完成,这里主要分析HDLC通道接收工作原理,明白了数据接收原理,会给
《三星ARM处理器S3C4510B的HDLC通道使用及编程(第7页)》