三星ARM处理器S3C4510B的HDLC通道使用及编程
1. 发送和接收数据大端/小端模式要一致,否则收到的数据与发送的数据高字节和低字节颠倒。
2. 使用DMA模式收发数据时,正常状态下进入中断后,读取发送BUFFER描述符指针寄存器(HDMATxPTR)或接收BUFFER描述符指针寄存器(HDMARxPTR)的内容时,他们指向的都是下一个未用的BUFFER描述符。因此想处理接收到的数据或者初始化用过的发送BUFFER描述符时,需要指回到它们。
3. 使用DMA方式时,发送和接收BUFFER描述符在使用时的OWERSHIP位必须是DMA所有。因为发送是主动的,所以当把数据放进BUFFER描述符后,可以设置OWERSHIP位,然后启动DMA发送;而接收是被动的,因此数据到来前,将要使用的BUFFER描述符必须是DMA所有,这就是每次进入接收中断后需要重置接收BUFFER描述符OWERSHIP位的原因。
4. 当发送端的时钟信息无法传递到接收端时,最好使用DPLL或者发送前导码,以便接收端能够恢复发送端的时钟信息。
5. 当使用外部时钟源发送或接收数据时,注意数据采样点和外部时钟源的配合。我们的设备中一块芯片为4510的HDLC通道提供时钟,它在时钟上升沿发送,下降沿接收,4510的HDLC通道默认模式是时钟下降沿发送,上升沿接收。我们以这种模式收发数据,存在严重的数据不稳定问题,当改为上升沿发送,下降沿接收后,完全正常。因此数据采样点的配合很重要。
6. 4510的HDLC通道收发方式还可以采用中断方式,由于时间紧迫和能力有限,我们的程序没有实现,有兴趣地可以参考4510数据手册实现中断方式收发。
5:总结
KS4510B是一款性价比很高的ARM处理器,功能丰富,编程简单,并且可以配合几种嵌入式实时操作系统,如pSOS,NUCLEUS等。我们的155M SDH传输设备中,使用4510B和NUCLEUS操作系统,完成了底层控制软件。经过调试,该软件性能稳定,其中HDLC通道完成了私有网管协议在SDH环网上的传输转发,实现了远程管理的功能。
随着各种电子,通讯产品对性能要求的日益提高,基于先进的ARM架构的各种32位微处理器也将得到越来越广泛的应用。因此,掌握了ARM处理器的使用和编程方法,必然能在工作中事半功倍,得到良好的结果和收益。
《三星ARM处理器S3C4510B的HDLC通道使用及编程(第9页)》