91精品国产综合久久久久久_精品久久久久久久久久久久久久久_国产一区二区精品在线_国产不卡免费视频_亚洲国产一区二区在线_视频一二区_一级片免费视频

您好,歡迎訪問滄正傳感官網(wǎng)!
0755-23406601
13425152026
深圳滄正傳感儀器有限公司
聯(lián)系我們

深圳滄正傳感儀器有限公司

地址:深圳市光明區(qū)塘尾寶塘工業(yè)區(qū)F2棟4樓
手機(jī):13425152026

咨詢熱線0755-23406601

基于RS485的PC與ARM之間文件傳輸?shù)膶?shí)現(xiàn)

發(fā)布時(shí)間:2019-12-27 08:40人氣:

在產(chǎn)業(yè)控制場(chǎng)合中,常會(huì)要求通過PC向嵌進(jìn)式微機(jī)傳輸圖片文件、數(shù)據(jù)文件等。RS485由于價(jià)格便宜、操縱簡(jiǎn)單、使用者可以隨意編寫應(yīng)用協(xié)議等優(yōu)點(diǎn),被廣泛應(yīng)用在中等長(zhǎng)間隔的控制通訊中。因此,利用RS485實(shí)現(xiàn)PC到嵌進(jìn)式系統(tǒng)的文件傳輸,十分具有現(xiàn)實(shí)意義。
本文以基于ARM9的三星S3C2410A為嵌進(jìn)式微處理器,嵌進(jìn)式Linux為嵌進(jìn)式操縱系統(tǒng)搭建一個(gè)嵌進(jìn)式系統(tǒng),成功實(shí)現(xiàn)了PC通過RS485向嵌進(jìn)式系統(tǒng)傳輸文件。
2. RS485接口先容
RS485是一種多點(diǎn)、雙向、平衡傳輸規(guī)范,被命名為TIA/EIA-485-A標(biāo)準(zhǔn)。
RS485由RS232發(fā)展而來,它改進(jìn)了RS232通訊間隔短、速率低的缺點(diǎn)。RS485是一種平衡通訊接口,傳輸速率最高可達(dá)10Mbit/s,最大傳輸間隔約為1219m,并答應(yīng)在一條平衡總線上連接最多32個(gè)設(shè)備。RS485的共模輸出電壓是-7V~+12V[5]。
3. 硬件設(shè)計(jì)
本文采用FriendlyARM公司的Nano2410V2核心板作為中心處理器模塊,并配以外圍電路。Nano2410V2核心板以S3C2410A為CPU[1]。
把S3C2410A的UART0分配給RS485總線,由芯片MAX485完成TTL到差分信號(hào)的轉(zhuǎn)換,RS485方向控制線占用GPB2。
 
PC上使用RS232/RS485轉(zhuǎn)換器,完成RS232到RS485的轉(zhuǎn)換。
4. RS485驅(qū)動(dòng)程序
RS485標(biāo)準(zhǔn)只對(duì)接口的電氣特性作出規(guī)定,而不涉及插件、電纜或協(xié)議[5]。因此,在Linux下使用RS485接口,可借助串口驅(qū)動(dòng)程序?qū)崿F(xiàn)。但是,RS485是半雙工的,比起RS232,需要多加一個(gè)I/O口來控制RS485的方向,該I/O口在發(fā)送數(shù)據(jù)時(shí)置高,接收數(shù)據(jù)時(shí)置低。
發(fā)送數(shù)據(jù):
ioctl(fd485, 1, 0); //fd485:方向控制I/O口驅(qū)動(dòng)設(shè)備文件的fd
write(fdtty, &bufout, 1); //fdtty:串口驅(qū)動(dòng)設(shè)備文件的fd
delay();
讀取數(shù)據(jù):
ioctl(fd485, 0, 0);
read(fdtty, &bufin, 1) ;
方向控制線的驅(qū)動(dòng)程序設(shè)計(jì):
定義file_operaTIONs[3][4]:
staTIc struct file_operaTIons io485_fops=
{
owner:THIS_MODULE,
ioctl:io485_ioctl
};
函數(shù)io485_ioctl用于設(shè)置RS485接口的方向:cmd為0時(shí),設(shè)為輸進(jìn);cmd為1時(shí),設(shè)為輸出[3][4]。
static int io485_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
{
switch(cmd)
{
case 0:
case 1:
write_gpio_bit(GPIO_B2, cmd);
return 0;
default:
return -EINVAL;
}
}
5. 自定義數(shù)據(jù)幀格式
在這里數(shù)據(jù)幀格式指的是發(fā)送方發(fā)送一個(gè)文件或者接收方接收一個(gè)文件的完整過程所需要的每一個(gè)字節(jié)元素的含義[5]。
本文定義格式如下:
(1) 開始符:標(biāo)志開始傳輸文件,1個(gè)字節(jié)。
(2) 文件名長(zhǎng)度:所傳輸文件的文件名的長(zhǎng)度,1個(gè)字節(jié)。
(3) 文件名:所傳輸文件的文件名,字節(jié)數(shù)由文件名長(zhǎng)度決定。
(4) 文件大小:所傳輸文件的大小,4個(gè)字節(jié)。
(5) 文件內(nèi)容:所傳輸文件的數(shù)據(jù),字節(jié)數(shù)由文件大小決定。
(6) ACK:確認(rèn)信號(hào)。接收方給發(fā)送方的反饋信號(hào),表示數(shù)據(jù)接收完成,1個(gè)字節(jié)。
6. 程序流程
本文對(duì)于傳輸文件,采用的方法為:發(fā)送端打開要傳輸?shù)奈募?,讀取文件數(shù)據(jù),然后通過串口向外發(fā)送;接收端先建立一個(gè)空文件,然后把從RS485接口讀到的內(nèi)容寫進(jìn)該文件里。
數(shù)據(jù)校驗(yàn):為防止文件數(shù)據(jù)在傳輸?shù)倪^程中,丟失或出錯(cuò),進(jìn)行校驗(yàn)是必要的。在這里,采用的校驗(yàn)方法是:發(fā)送端每發(fā)送n個(gè)字節(jié),就取1個(gè)字節(jié)作為校驗(yàn)字節(jié)。該字節(jié)是前n個(gè)字節(jié)異或運(yùn)算的結(jié)果;接收端每接收n個(gè)字節(jié),就對(duì)該n個(gè)字節(jié)進(jìn)行異或運(yùn)算,并把結(jié)果與校驗(yàn)字節(jié)作比較,相同則傳輸繼續(xù)進(jìn)行,不同則要求發(fā)送端重新發(fā)送。
在本文中,ARM作為文件接收方,PC作為文件發(fā)送方,發(fā)送方的程序流程與接收方互補(bǔ)即可。
 
7. 結(jié)語
通過PC向嵌進(jìn)式微機(jī)傳輸文件在嵌進(jìn)式系統(tǒng)應(yīng)用中經(jīng)常需要。而RS485由于其突出優(yōu)點(diǎn),廣泛應(yīng)用在產(chǎn)業(yè)控制中。因此通過RS485實(shí)現(xiàn)PC到嵌進(jìn)式系統(tǒng)的文件傳輸,十分具有現(xiàn)實(shí)意義。
本文作者創(chuàng)新點(diǎn):提出了一種簡(jiǎn)單的RS485驅(qū)動(dòng)程序設(shè)計(jì)方法,并以一種簡(jiǎn)單、實(shí)用、可靠的方法成功實(shí)現(xiàn)了PC通過RS485向ARM傳輸文件。更多文章請(qǐng)?jiān)L問http://www.neohoutdoors.com

推薦資訊

0755-23406601
主站蜘蛛池模板: 国产欧美综合在线 | 久久久久成人精品一区二区 | 天天射天天干天天操 | 97久久精品人人做人人爽 | 巨熟乳波霸若妻中文观看免费 | 成年人免费在线视频网站 | 欧美97久久人人模人人爽人人喊 | 国产旗袍丝袜在线观看视频 | 久久久久久夜精品精品免费 | 国产精品热久久毛片 | 久久国产精品亚洲综合 | 日韩视频在线观看中字 | 在线观看日本www | 九九九色| 国产欧美另类 | 欧美一区二区二区 | 日本女人黄色 | 国产精品久久久久久小说 | 日韩中文字幕a | 九九大香尹人视频免费 | 国产五月 | 久久久久久久久久久久福利 | 国产区欧美 | 久久99综合 | 欧美日韩免费看 | 日本久久中文字幕 | 国产精品久久久久久久毛片 | 青青草免费在线观看视频 | 国产噜噜噜精品免费 | 日本免费不卡视频一区二区三区 | 国产调教视频在线观看 | 亚洲va中文字幕欧美不卡 | 精品视频一区二区三区免费 | 欧美视频一区二区三区 | 免费精品精品国产欧美在线 | 天天做夜夜做久久做狠狠 | 天天色成人 | 日本欧美视频在线 | 久久精品国产亚洲高清 | 黄频在线播放 | 欧洲第一页 |