亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2444 | 回復: 6
打印 上一主題 下一主題

[驅動] 串口驅動的相關問題,請大俠來幫幫忙 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-10-15 11:10 |只看該作者 |倒序瀏覽
小弟,最近開始著手linux平臺下串口驅動的開發(fā),F(xiàn)在遇到一個問題,就是用某串口從GPS模塊讀取信息的時候,有時候會出錯。我們這里采用了一個額外的串口五,當然,內核等是修改過以適應擴展的串口,并以復用的方式和串口4整合在一起(這里是我不明白的一個點,串口復用是什么意思。。。。怎么工作的。。。。)。
當我們不用和串口5復用的串口4讀取GPS模塊的信息,而是用串口2的時候,出錯的現(xiàn)象就會減少(當然,這里會出錯,這些和GPS天線、信號等有關)。所以可以知道,硬件上是沒有問題的,所以是驅動上的問題,F(xiàn)在就著手看串口的結構,但是tty、uart等的結構不是很清晰,我是看了些驅動的代碼,網上的結構說明也不是很清晰,在兩者如何相關上的說明不是很多。是否有相關這些結構的東西的細致的介紹,同時,串口的工作上是怎么進行的,當然,如果能提點一些俺遇到的問題的方向,那就更好了。
所以也求各位大俠能否指點一二。萬分感謝。

論壇徽章:
0
2 [報告]
發(fā)表于 2010-10-15 22:48 |只看該作者
1 "串口復用" 具體問題具體分析, 你是使用什么板子, 硬件電路圖是怎樣, 無人知曉. 因此沒發(fā)很好地回答, 就理解為該串口是與其中4個中的一個并聯(lián)的, 但是具體怎么區(qū)分就不清楚了.

2 "有時候會出錯" 不明白你指的出錯是什么意思? GPS報個沒有收到星? 還是串口讀取時發(fā)生錯誤? 如果是GPS報個數據的錯誤,那么跟串口無關, 但若是讀取數據錯誤, 應該跟GPS的天線等無關吧. GPS管不管有沒有信號, 都應該會輸出的.

3 tty包含uart, 可參考毛德操的linux情景分析中tty部分, 只與uart嘛, 沒有什么書籍具體描述的, 看kernel源碼吧.

論壇徽章:
0
3 [報告]
發(fā)表于 2010-10-19 09:36 |只看該作者
回復 2# kamingli

1 使用的是arm體系的GM8180.具體怎么復用的,其實我也不是很了解,前人做的東西,留下來的文檔說明不是很詳細,也沒有指明。大致上應該是第五個口和4個中的一個并聯(lián)在一起.就是具體并聯(lián)的話,他們分享同一個中斷之類的是嗎?并聯(lián)起來的目的可能是有些什么?還望指點

2 出錯就是,GPS會不停的收到信息,當我們直接從GPS模塊讀取信息的時候,會發(fā)現(xiàn)信息的格式什么的都是正確的,并且每條信息之間是分割開的。但是當我們從串口中讀取出GPS的信息的時候,會發(fā)現(xiàn)有些GPS的信息會丟失或者出現(xiàn)錯誤(具體的就是和直接從GPS上讀取出來的信息做比較),有些讀取出來的GPS信息會上下兩條信息合并在一起(也就是信息A的結束碼和緊接著的信息B的起始碼錯誤疊加,導致了兩條信息變成了一條信息)。只是不知道從哪里入手,因為單單使用串口2(沒有并聯(lián)的單獨一個串口),讀取信息雖然也會有些丟失的錯誤,但是情況很少發(fā)生,所以基本就確定是代碼上有問題了。最近也只是看看內核相關的代碼,但是毫無頭緒,望大俠能指點一個方向。

3 好的,這部分我會去看下。最近也是死命的看kernel,但是看的一知半解的,也不知道看了點什么有用的。也只有這么看,希望能有些個靈感。

論壇徽章:
0
4 [報告]
發(fā)表于 2010-10-19 10:34 |只看該作者
鑒于描述的情況,  
1 我不能確定所說的復用到底是怎么一個情況, 不過也不用這么較真了, 前人說復用就復用吧.

2 首先得肯定一下, 你板子上的串口(你最終想使用的那個), 是否已經是好的(包括驅動和硬件)

3 如果那個串口是好的, 那么目前看來有可能是buffer不夠, 導致數據丟失了, 因為串口的接收buffer, 若滿了,數據就會被覆蓋的.

論壇徽章:
0
5 [報告]
發(fā)表于 2010-10-19 14:31 |只看該作者
回復 4# kamingli


1 小弟這么較真這個復用是自己估計,因為三個串口復用了(使用的串口2,3,4,它們有多種功能,用于GPIO,或者UART等,復用會不會是指的這個?雖然也不是很明確),然后這三個會彼此影響。當然三個復用的串口當中的其他兩個口并沒有在使用中(和串口相應的設備并沒有開啟使用)。介于改變硬件電路而使用沒有復用的串口1的時候,沒有什么大問題,所以可能出現(xiàn)的問題估計是在復用上導致的。

2 硬件應該是沒問題的,因為板子不是只有一塊,換過也試過了。驅動的話,不敢保證,因為前人為了使用串口4而修改了一些配置,但是總體上的東西沒有改動,只是增加了串口2,3,4的復用(唯一添加的地方)。關鍵是改了電路后,使用串口1,而不改變驅動什么的話,是可以保證使用正常的。

3 buffer的問題倒是非常的有可能,感謝提點。

不過,我還是不怎么知道如何著手。。。還望大俠能繼續(xù)指點交流

論壇徽章:
0
6 [報告]
發(fā)表于 2010-10-19 19:37 |只看該作者
GPS的波特率是9600以下吧? 串口有沒有FIFO? 這得看手冊了. 還有就是, 應用層得勤快一點, 隨時準備把數據讀走.

論壇徽章:
0
7 [報告]
發(fā)表于 2010-10-19 20:51 |只看該作者
回復 6# kamingli

GPS是9600的,那么CPU通過串口讀取數據的時候是要設置成9600的對吧?

串口有FIFO的。。。但是感覺,在使用上不會造成buffer被堆滿的。。。不過具體的還是不好說。。。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP