吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創信息技術串口校驗位的Mark/Space設置在英創主板中的應用

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-02-04 11:44 ? 次閱讀

英創Linux主板可以通過RS485總線掛載多個單片機組成多機系統,如圖1所示,其中Linux主機作為上位機,單片機作為從機,485總線最多能掛載256個從機。系統工作的時候,每一個從機都有自己的地址(從機號),上位機首先發送從機的地址,再發送命令/數據,其發送的命令/數據可以被每一個從機接收,從機收到命令和數據后,如果地址和自己的相符,就進行應答。

圖1 Linux主機與單片機組成的多機系統

圖2 多機通信幀格式

單片機每收到一個字節都要產生中斷,在一般情況下,當Linux主機向從機1發送數據的時候,從機2、3在每一個字節都要產生中斷,不論傳輸的是地址還是數據,也不論是不是跟自己通信。當從機設備比較多、傳輸數據比較頻繁的時候,單片機的負載將大大增加,影響正常的工作。

比較通用的解決辦法是充分利用串口固定校驗位(Parity Stick)的功能,使用Mark/Space校驗位區分地址和數據,如圖2所示的多機通信幀中,發送和接收地址字節時,可以使用Mark校驗(也可以使用Space校驗),發送和接收數據字節時,使用Space校驗(也可以使用Mark校驗)。系統初始化的時候,所有的從機都設置成Mark校驗,進入等待狀態。主機發送第一個字節(addr = 從機1)的時候使用Mark校驗。這時,所有的從機都收到了addr,并通過校驗產生中斷。在從機的中斷程序中,如果addr和自己的地址相符,就將從機設置成Space校驗(從機1),否則,繼續保持Mark校驗(從機2、3)。緊接著,主機發送data1、data2的時候使用Space校驗,這時,由于從機2、3不能通過Space校驗,將不會產生中斷,只有從機1會產生中斷,應答主機。這樣就大大降低了處于等待狀態的從機2、3的中斷負載。

對Linux目前的串口驅動程序而言,在邏輯上應用程序可以先設置一次Mark校驗位,write一個地址字節,再設置一次Space校驗,接著write多個數據字節來實現多機通信。但是,兩次調用write之間可能會有較大的時間間隙,導致單片機接收數據超時,多機通信失敗。為此,英創公司專門修改了Linux串口驅動程序,在不增加新的API調用的前提下,只需要在應用程序中連續兩次設置校驗位即可使串口驅動進入ADDR_DATA_MODE模式,支持Mark/Space多機通信,并且將同一幀數據的addr、data連續發送出去(應用程序只調用一次write函數)。應用程序具體步驟如下(為方便校驗位設置,編寫了一個校驗位設置函數):

1、校驗位設置函數

intCSerial::SetParity(intparity)

{

structtermios new_opt;

intstatus;

unsignedintold_ccflag;

tcgetattr(m_fd,&new_opt);

old_ccflag = new_opt.c_cflag;

new_opt.c_cflag &= ~PARODD ;

new_opt.c_cflag &= ~CMSPAR ;

if(parity == 0)

{

//使用Space校驗 標記數據

new_opt.c_cflag |= PARENB | CS8 | CMSPAR;

}

elseif(parity == 1)

{

//使用Mark校驗 標記地址

new_opt.c_cflag |= PARENB | CS8 | CMSPAR | PARODD;

}

elseif(parity == 2)

{ //使用偶校驗

new_opt.c_cflag |= PARENB; /* Enable parity */

new_opt.c_cflag &= ~PARODD; /* 轉換為偶效驗*/

}

elseif(parity == 3)

{

//使用奇校驗

new_opt.c_cflag |= (PARODD | PARENB); /* 設置為奇效驗*/

}

else

{

new_opt.c_cflag = old_ccflag;

}

status = tcsetattr(m_fd,TCSANOW,&new_opt);

returnstatus;

}

2、主程序兩次調用校驗位設置函數,進入ADDR_DATA_MODE模式

Buf[0] = 0x39;

Buf[1] = 0xC1;

Buf[2] = 0x80;

Buf[3] = 0x1;

Buf[4] = 0x0;

//連續兩次設置校驗位,進入ADDR_DATA_MODE.

//先設置數據使用的校驗位,后設置地址使用的校驗位

m_Serial.SetParity(0); //數據使用space校驗

m_Serial.SetParity(1); //地址使用mark校驗

sleep(1);

m_Serial.WritePort( Buf, 5 );

如上程序將5個字節一起發送出去,其中Buf[0]作為地址,使用mark校驗,Buf[1-4]作為數據,使用space校驗,波形如圖3所示。所有從機收到地址后,都通過校驗位,產生中斷,但僅地址為0x39的從機會將自己的校驗位設置為0。之后Buf[1-4]僅有從機0x39能夠產生接收中斷,應答主機。

發送完這5個字節后,就退出了ADDR_DATA_MODE模式,繼續串口發送的所有字節都使用space校驗(先設置的校驗位)。如果需要其他校驗方式,可以調用SetParity()進行設置。

圖3 ADDR_DATA_MODE發送波形圖

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210389
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35613
收藏 人收藏

    評論

    相關推薦

    芯盛智能榮獲2024年信息技術應用創新工作委員會卓越貢獻成員單位

    日前,中國電子工業標準化技術協會信息技術應用創新工作委員會(以下簡稱 “信工委會”)2024 年度總結座談會于北京隆重舉行。此次會議對
    的頭像 發表于 01-20 09:56 ?157次閱讀

    國產工控主板,信產業發展新引擎

    在當今科技飛速發展的時代,信產業正成為國家戰略的重要支撐。而我們的國產工控主板,以其卓越的性能和可靠的品質,為信產業的發展注入強大動力。國產工控主板
    的頭像 發表于 11-06 10:29 ?312次閱讀

    中科達榮獲2024年軟件和信息技術服務優秀企業

    近日,由中國電子信息行業聯合會主辦的第二十六屆中國國際軟件博覽會(簡稱“軟博會”)天津國家會展中心成功舉行。在此次盛會上,中國電子信息行業聯合會發布了“2024年軟件和信息技術服務企
    的頭像 發表于 10-30 11:44 ?557次閱讀

    銳恩科技引領微控制器MCU技術創新,賦能多元化應用!

    ,成為國家高新技術半導體企業的佼佼者。銳恩科技不僅致力于為客戶提供高可靠性、高性能、高性價比的一站式半導體芯片供應服務,更在8和32MCU市場不斷創新,推動
    發表于 09-29 13:40

    銳恩科技,以實力打造國產單片機替代品牌!

    性能已得到了市場的肯定。銳恩科技在技術上的優勢是其脫穎而出的關鍵。他們擁有一支由行業精英組成的研發團隊,不斷單片機領域進行技術探索和突破。以下是
    發表于 09-25 09:49

    用8單片機,32單片機就找銳恩!

    深圳市銳恩科技有限公司創立于 2008 年,是一家從事單片機及模擬器件電路芯片應用、設計研發、銷售一體的國家高新技術半導體企業。 銳恩科技公司憑著自身在半導體電子行業MCU(8
    的頭像 發表于 09-23 10:32 ?393次閱讀

    國產化背景下的工控主板發展現狀

    ,是信息技術應用創新產業的簡稱,于2016年“信工委會”(信息技術應用創新工作委員會)提出,目的就是要推動我們國內軟硬件關鍵技術的研發
    的頭像 發表于 09-21 16:15 ?508次閱讀

    UART串口通訊協議解析

    “1”的位數應為偶數(偶校驗)或奇數(奇校驗),以此來校驗數據傳送的正確性。校驗位其實是調整個數,串口
    發表于 09-12 16:01

    軟國際信服務助力大連信產業發展

    為進一步激發大連本地信產業生態的活力與潛力,搭建一個高效、開放的交流平臺。由大連軟件行業協會攜手大連市信息技術應用創新綜合服務中心主辦,軟國際協辦的,2024年大連市信息技術應用創
    的頭像 發表于 08-27 16:49 ?954次閱讀

    IPv6 產業的發展歷程

    隨著信息技術的飛速發展,信產業作為國家信息安全和科技自主創新的重要領域,正日益受到廣泛關注。產業的發展過程
    的頭像 發表于 06-17 14:46 ?444次閱讀
    IPv6 <b class='flag-5'>在</b>信<b class='flag-5'>創</b>產業<b class='flag-5'>中</b>的發展歷程

    通過大小鼠無血壓測量實驗明白了無血壓測量技術的重要性

    血壓測量技術的重要性:無血壓測量技術是一種非侵入性的測量方法,可以避免對動物造成不必要的傷害。醫學研究
    發表于 04-22 09:40

    泰斯特承辦“聯企投匯·周三會”,協同打造智能網聯新高地

    2024年3月27日,由市委統戰部、市工商聯主辦、武漢市高新技術產業協會協辦的“聯企投匯·周三會”第十三期活動武漢英泰斯特電子技術有限公司(以下簡稱“
    的頭像 發表于 03-29 09:50 ?556次閱讀

    股份板成功上市

    山東軟件商用中間件股份有限公司(股票簡稱“股份”)正式登陸科板,彰顯其基礎軟件中間件
    的頭像 發表于 03-15 17:58 ?835次閱讀

    股份今日登陸科

    山東軟件商用中間件股份有限公司(以下簡稱“股份”)近日在上海證券交易所科板成功上市,標志著這家國內知名的民營軟件和
    的頭像 發表于 03-13 14:19 ?594次閱讀

    股份在上交所科板上市

    山東軟件商用中間件股份有限公司(以下簡稱“股份”)近日在上海證券交易所科板成功上市,標志著這家國內知名的民營軟件和
    的頭像 發表于 03-13 14:02 ?589次閱讀
    巴黎百家乐地址| 苍梧县| 免费百家乐官网计划工具| 沈阳娱乐棋牌网| 24山天机申山寅向择日| 饶平县| 利来百家乐的玩法技巧和规则| 百家乐官网技真人荷官| 大发888娱乐城打发888打发8| 做生意带什么装饰招财| 金百亿百家乐官网娱乐城| 大发888娱乐城下栽| 做生意必须看风水吗| 百家乐官网破解辅助| 曼哈顿百家乐的玩法技巧和规则 | 百家乐官网隔一数打法| 威尼斯人娱乐电子游戏| 百家乐官网讲谈| 网络博彩qq群| 新东方百家乐娱乐城| 赌王百家乐官网的玩法技巧和规则 | 澳门金莎娱乐城| 百家乐国际娱乐平台| A8百家乐官网娱乐场| 百家乐投资| 百家乐真人百家乐皇冠| 下载百家乐官网的玩法技巧和规则| 利博国际网址| 赌场百家乐实战| 澳门百家乐官网博| 百家乐官网2珠路投注法| 大发888博必发| 百家乐路单怎样| 百家乐官网b28博你发v| 九州百家乐官网娱乐城| 香港六合彩总公司| 精通百家乐的玩法技巧和规则| 网上百家乐玩法| 百家乐官网跟路技巧| 新乡市| 世界顶级赌场酒店|