女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]本文在成功實(shí)踐的基礎(chǔ)上,介紹微控制器MSP430F449實(shí)現(xiàn)數(shù)據(jù)的采集后的數(shù)據(jù)存儲(chǔ)及與上位機(jī)數(shù)據(jù)通信的相關(guān)內(nèi)容。

摘要:在數(shù)據(jù)采集設(shè)備以及具有相關(guān)功能的儀器設(shè)計(jì)中,數(shù)據(jù)的存儲(chǔ)和傳輸是一個(gè)非常重要的環(huán)節(jié),本文在成功實(shí)踐的基礎(chǔ)上,介紹微控制器MSP430F449實(shí)現(xiàn)數(shù)據(jù)的采集后的數(shù)據(jù)存儲(chǔ)及與上位機(jī)數(shù)據(jù)通信的相關(guān)內(nèi)容。文中給出了實(shí)用的硬件電路和部分軟件代碼,詳細(xì)講解了在數(shù)據(jù)存儲(chǔ)中需要注意的一些環(huán)節(jié)。
關(guān)鍵詞MSP430USB,I2C

 在數(shù)據(jù)采集和測(cè)量儀器尤其是便攜式設(shè)備中,數(shù)據(jù)存儲(chǔ)和傳輸是不可避免的問題,近年來TI公司推出的低功耗微控制器MSP430,在儀器設(shè)計(jì)和制造領(lǐng)域引起巨大變革,新型控制器和大容量串行存儲(chǔ)器的應(yīng)用大大提高產(chǎn)品了的性能。本文主要解決兩個(gè)問題

1 解決經(jīng)過MSP430采集后的數(shù)據(jù)與EEPROM24C256的數(shù)據(jù)接口問題,也就是數(shù)據(jù)存儲(chǔ)問題;

2 解決EEPROM與上位機(jī)(普通微機(jī))的數(shù)據(jù)通信問題,也就是存儲(chǔ)后的數(shù)據(jù)上傳問題。

首先對(duì)主要的集成電路做簡單介紹

MSP430F449簡介

MSP430F449MSP430系列中的一種,MSP430系列是一種具有集成度高,功能豐富、功耗低等特點(diǎn)的16位單片機(jī)。它的集成調(diào)試環(huán)境Embedded Workbench 提供了良好的C語言開發(fā)平臺(tái)。設(shè)計(jì)中基于程序的復(fù)雜性和程序容量大的要求選擇了MSP430F449,這款芯片具有64K程序存儲(chǔ)器,可以滿足大部分復(fù)雜控制的需要;它的封裝100PIN QFP具有良好的互換性,與MSP430F437 MSP430F435等芯片具有完全一致的管腳可以在程序量上進(jìn)行合理選擇。

24C256簡介

     24C256是支持I2C協(xié)議的串行EEPROM,容量32768字節(jié)。
                     

    以上是24C256的管腳圖,其中A0,A1,A2構(gòu)成存儲(chǔ)器的物理地址,作為I2C總線上區(qū)分不同存儲(chǔ)器的控制地址,可以在I2C總線上同時(shí)連接8個(gè)設(shè)備。 WP是寫保護(hù),高電平將禁止對(duì)器件的寫操作;SCLSDA是數(shù)據(jù)傳輸?shù)目刂凭€,其中SCL是時(shí)鐘,SDA是雙向數(shù)據(jù)線,用來完成數(shù)據(jù)的寫入和讀出,數(shù)據(jù)的傳輸按照I2C協(xié)議的要求由時(shí)鐘端SCL配合共同完成。

CP2102簡介

    CP2102USBUART的橋接電路,完成USB數(shù)據(jù)和UART數(shù)據(jù)的轉(zhuǎn)換,電路連接簡單,數(shù)據(jù)傳輸可靠,把下位機(jī)串行數(shù)據(jù)轉(zhuǎn)換成USB數(shù)據(jù)格式,方便實(shí)現(xiàn)數(shù)據(jù)通信,在上位機(jī)上通過運(yùn)行該芯片的驅(qū)動(dòng)程序把USB數(shù)據(jù)可以按照簡單的串口進(jìn)行讀寫操作編程簡單,操作靈活。
     

   1 MSP430F449 接口原理圖

    以上是MSP430F449EEPROM以及CP2102的接口原理圖,本文重點(diǎn)在于介紹數(shù)據(jù)采集過程完成以后的數(shù)據(jù)存貯和數(shù)據(jù)傳輸。

數(shù)據(jù)的采集多種多樣,可以經(jīng)過片內(nèi)的ADC轉(zhuǎn)換器對(duì)模擬量進(jìn)行采集,也可以通過獨(dú)立的端口控制線對(duì)特殊的傳感器比如溫度傳感器、壓力傳感器等進(jìn)行數(shù)據(jù)轉(zhuǎn)換,這不作為本文介紹的內(nèi)容。本文主要是針對(duì)不同的采集過程完成后數(shù)據(jù)的存儲(chǔ)和傳輸處理。

數(shù)據(jù)自動(dòng)存儲(chǔ)的客觀要求

在許多測(cè)量過程中,不僅要求讀取簡單的儀表值,而且還需要對(duì)一段時(shí)間的數(shù)據(jù)進(jìn)行科學(xué)的分析和處理以取得預(yù)測(cè)和分析的目的。在這種情況下,可能要求測(cè)量時(shí)間長,采集要求自動(dòng)進(jìn)行,無需人工值守,所以數(shù)據(jù)必須自動(dòng)存儲(chǔ);另一個(gè)原因,采集數(shù)據(jù)的頻率比較高,人的觀察不能滿足實(shí)際需要,這就要求對(duì)采集的數(shù)據(jù)進(jìn)行有效的存儲(chǔ)。

集成電路合理選擇

有很多大容量的FLASH芯片已經(jīng)得到廣泛應(yīng)用,但是這類芯片口線較多,需要占用較多的控制器資源,在控制外圍器件多,接口復(fù)雜的情況下,特別是便攜式儀器功能全、體積小,為了精簡外圍電路,在不影響存儲(chǔ)量的情況下,具有I2C接口的串行EEPROM就成為了最佳選擇。

24C256程序控制原理

24C256是具有I2C接口的512x64存儲(chǔ)器,在數(shù)據(jù)的存儲(chǔ)過程中除了遵循I2C協(xié)議必須的邏輯以外,一個(gè)最容易忽視并且最容易導(dǎo)致出錯(cuò)的問題就是存儲(chǔ)地址問題。

24C256的數(shù)據(jù)容量是32768,即可以存儲(chǔ)的有效字節(jié)數(shù)。所以它的地址是16位整型數(shù),有效范圍是032768,數(shù)據(jù)字節(jié)為單位存儲(chǔ),在16位地址其中有效數(shù)據(jù)只有15位,低605)位地址表示的容量是063,然后連續(xù)的9614)位地址表示頁碼的范圍是0511,在數(shù)據(jù)連續(xù)存儲(chǔ)過程中,相同的頁面內(nèi),存儲(chǔ)地址自動(dòng)完成累加過程;數(shù)據(jù)在不同頁面的存儲(chǔ)時(shí),地址不能自動(dòng)累加,如果不做正確處理,數(shù)據(jù)將從本頁開始的地址重新開始覆蓋已經(jīng)存在的數(shù)據(jù)。例如,地址是63(二進(jìn)制碼111111)表示的是第0頁的最后一個(gè)存儲(chǔ)空間,地址64(二進(jìn)制碼1,000000)表示第1頁最開始的存儲(chǔ)空間。在當(dāng)前存儲(chǔ)地址是63時(shí)如果該器件處于連續(xù)存儲(chǔ)模式下,數(shù)據(jù)將出錯(cuò)。

原因是什么呢? 24C256支持?jǐn)?shù)據(jù)的連續(xù)存儲(chǔ),最大的存貯數(shù)量是64即一頁的內(nèi)容,如果在地址選擇上超過了這個(gè)限制,數(shù)據(jù)將會(huì)覆蓋本頁開始的位置重新存儲(chǔ),這就造成數(shù)據(jù)的錯(cuò)誤,在使用上,雖然數(shù)據(jù)是分頁存儲(chǔ)的,但在形式上是連續(xù)數(shù)據(jù),所以存儲(chǔ)中不需要特意區(qū)分頁地址和頁內(nèi)地址。

在連續(xù)存儲(chǔ)中,盡管數(shù)據(jù)每次存儲(chǔ)的數(shù)量小于64,數(shù)據(jù)也可能出錯(cuò),例如每次存儲(chǔ)數(shù)量為11,地址的變化是0,11,22,33,4455,66……,看上去沒有什么問題,地址是按照每次11遞增的,然而存儲(chǔ)的結(jié)果還是出錯(cuò)了,原因是什么呢?在地址55開始的空間無法提供連續(xù)11個(gè)頁內(nèi)存儲(chǔ)空間,當(dāng)?shù)刂吩黾拥?/SPAN>63以后數(shù)據(jù)又從該頁0地址重新開始,從而導(dǎo)致數(shù)據(jù)儲(chǔ)存的錯(cuò)誤。有效的解決辦法是如果使用連續(xù)存儲(chǔ)模式,地址的安排上要使存儲(chǔ)塊的大小為64,32,16,842此外都不能使用連續(xù)地址存儲(chǔ)。如果數(shù)據(jù)采集中的有效數(shù)據(jù)位小于64,比如每次采集的結(jié)果是30字節(jié),在連續(xù)存儲(chǔ)模式下要按照32為單位存儲(chǔ),不足的字節(jié)補(bǔ)零處理。

以下是24C256數(shù)據(jù)傳輸基本控制模塊

Ø         延時(shí)處理模塊

void IIC_Delay(void)   

{

 _NOP();

 _NOP();

 _NOP();

}

Ø         啟動(dòng)I2C模塊

void start_IIC(void)      //          啟動(dòng)I2

{

 P2OUT&=0xf9;                    //設(shè)置P2輸出

 P2DIR&=0XFD;                   //SDA=1, 上拉電阻使得P2.1HFD=1111,1101

P2DIR&=0XFB;                   //SCL=1              FB=1111,1011

P2DIR|=0X02;                     // SDA=0

P2DIR|=0X04;                     // SCL=0

}

Ø         停止I2C模塊

void stop_IIC(void)       //         

{

 P2DIR|=0X02;//SDA=0

 IIC_Delay();

 P2DIR&=0XFB;//SCL=1              FB=1111,1011

P2DIR&=0XFD;//SDA=1,             上拉電阻使得P2.1H,FD=1111,1101

 IIC_Delay();

P2DIR|=0X04;// SCL=0

}

Ø         發(fā)送 0”模塊

void send_zero(void)      //             

{

 P2DIR|=0X02;// SDA=0

 IIC_Delay();

 P2DIR&=0XFB;//SCL=1              FB=1111,1011

 IIC_Delay();

 P2DIR|=0X04;// SCL=0

}

Ø         發(fā)送  1模塊

void send_one(void)       //          

{

 P2DIR&=0XFD;//SDA=1,           上拉電阻使得P2.1H,FD=1111,1101

 IIC_Delay();

 P2DIR&=0XFB;//SCL=1              FB=1111,1011

 IIC_Delay();

 P2DIR|=0X04;// SCL=0

}

Ø         發(fā)送單字符數(shù)據(jù)

void send _char(unsigned char data_out)    //    

{

  unsigned char i,tmp=0x80;

  for(i=0;i<8;i++)

  {

    if((data_out & tmp)>0)

    send_one();

    else

    send_zero();

    tmp/=2;

  }

}

Ø         讀單字符數(shù)據(jù)

unsigned char read_char(void) 

{

 unsigned char i,tmp=0x80;

 unsigned char data1=0;

for (i=0;i<8;i++)

{

   P2DIR&=0XFD;//SDA=1,  11111101

   IIC_Delay();//

   P2DIR&=0XFB;//SCL=1              FB=1111,1011

   IIC_Delay();

   if((P2IN&0x02)>0x00)

   {

     data1|=tmp;

   }

   P2DIR|=0X04;// SCL=0

   IIC_Delay();

   tmp/=2;

 }

 return data1;

}

Ø         檢查應(yīng)答信號(hào)模塊

void iic_ACK(void)

{

 ack_flag=0x00;

 P2DIR&=0XFD;//SDA=1,             FD=1111,1101

 IIC_Delay();

 P2DIR&=0XFB;//SCL=1              FB=1111,1011

IIC_Delay();

while((P2IN&BIT1)==BIT1);

P2DIR|=0X04;// SCL=0

 IIC_Delay();

}

Ø         拒絕應(yīng)答模塊

void iic_NACK(void)          {

 P2DIR&=0XFD;//SDA=1,

 IIC_Delay();

 P2DIR&=0XFB;//SCL=1              FB=1111,1011

 IIC_Delay();

 P2DIR|=0X04;// SCL=0

 IIC_Delay();

 P2DIR|=0X02;// SDA=0

 IIC_Delay();//         

}

Ø         寫連續(xù)數(shù)據(jù)模塊

void WriteNbyte(unsigned char *p,unsigned int addr,unsigned char number)   

{

     start_IIC();

    send_char(0xa2);

    iic_ACK();   

    send_char(addr/256);    //high address byte

    iic_ACK();

    send_char(addr%256);

    iic_ACK();       

           do

                {

                    send_char(*p);

                    p++;

                    iic_ACK();                   

                }

                while(--number);

         

    stop_IIC();

    delay(10);

}

Ø         發(fā)送應(yīng)答模塊:ACK (LOW)

void S_ACK(void)          

{

 P2DIR|=0X02;// SDA=0

 IIC_Delay();

 P2DIR&=0XFB;//SCL=1              FB=1111,1011

 IIC_Delay();

 P2DIR|=0X04;// SCL=0

 IIC_Delay();

}

Ø         連續(xù)讀字符模塊

void ReadNbyte(unsigned char *p,unsigned int addr,unsigned char number)      

{

    start_IIC();

    send_char(0xa2);

    iic_ACK();

    send_char(addr/256);

    iic_ACK();

    send_char(addr%256);

    iic_ACK(); 

    start_IIC();

                 send_char(0xa3);

                 iic_ACK();

                   do

                    {

                        *p=read_char();

                        p++;

                        if(number!=1) 

                          S_ACK();        //send ACK

                    }

                    while(--number);

               iic_NACK();

    stop_IIC();

}

數(shù)據(jù)的傳輸

數(shù)據(jù)傳輸是存儲(chǔ)在EEPROM中的數(shù)據(jù)到達(dá)計(jì)算機(jī)的有效途徑,數(shù)據(jù)上傳到計(jì)算機(jī)最常用的是串行(RS232)接口,現(xiàn)在由于USB計(jì)數(shù)的不斷成熟,通過USB可以方便快捷實(shí)現(xiàn)數(shù)據(jù)傳輸,而且可以滿足速率和設(shè)備外觀的要求,但是USB的驅(qū)動(dòng)程序設(shè)計(jì)是比較復(fù)雜的工作,本例中使用簡單的橋接電路,把UART接口的數(shù)據(jù)經(jīng)過CP2102的橋接,直接實(shí)現(xiàn)數(shù)據(jù)的USB轉(zhuǎn)換,從430F449異步串口輸出的數(shù)據(jù)自動(dòng)轉(zhuǎn)化為符合USB協(xié)議的數(shù)據(jù)直接連接到計(jì)算機(jī)的USB口,上位機(jī)應(yīng)用程序通過CP2102的驅(qū)動(dòng)程序可以象操作串口一樣直接讀寫端口數(shù)據(jù)。

結(jié)論

以上的硬件設(shè)計(jì)比較簡單可靠,可以照搬到同類型的控制芯片上,軟件代碼也同樣具有較好的移植性,只要把控制時(shí)鐘和數(shù)據(jù)端口和程序軟件設(shè)置相一致即可。

參考文獻(xiàn):

1、MSP430系列16位超低功耗單片機(jī)實(shí)踐與系統(tǒng)設(shè)計(jì)《清華大學(xué)出版社》
2、MSP430系列單片機(jī)接口計(jì)數(shù)及系統(tǒng)設(shè)計(jì)實(shí)例《北京航天航空大學(xué)出版社》
3、MSP430系列單片機(jī)C語言程序設(shè)計(jì)與開發(fā)《北京航天航空大學(xué)出版社》

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

USB-C接口全稱為USB Type-C,屬于USB 3.0下一代接口,其亮點(diǎn)在于更加纖薄的設(shè)計(jì)、更快的傳輸速度(最高可達(dá)10Gbps)、更強(qiáng)的電力傳輸(最高100W),此外USB-C接口還支持雙面插入,正反面隨便插,相...

關(guān)鍵字: iPhone 15 Lightning USB

(全球TMT2022年9月26日訊)21日,在曼谷舉行的華為全聯(lián)接大會(huì)2022期間,華為常務(wù)董事、ICT基礎(chǔ)設(shè)施業(yè)務(wù)管理委員會(huì)主任汪濤發(fā)布《邁向智能世界》系列白皮書,華為首席戰(zhàn)略架構(gòu)師黨文栓對(duì)白皮書核心要點(diǎn)進(jìn)行了詳解。...

關(guān)鍵字: 華為 數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)中心 AI

泰國曼谷2022年9月23日 /美通社/ -- 21日,在曼谷舉行的華為全聯(lián)接大會(huì)2022期間,華為常務(wù)董事、ICT基礎(chǔ)設(shè)施業(yè)務(wù)管理委員會(huì)主任汪濤發(fā)布《邁向智能世界》系列白皮書,華為首席戰(zhàn)略架構(gòu)師黨文栓對(duì)白皮書核心要點(diǎn)進(jìn)...

關(guān)鍵字: 數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)中心 數(shù)字化 AI

(全球TMT2022年9月22日訊)OneAsia宣布,推出高性能計(jì)算解決方案OAsis,并作為香港首個(gè)同類解決方案,賦能針對(duì)復(fù)雜數(shù)據(jù)的計(jì)算能力和模擬計(jì)算能力。 OAsis支持客戶將按需計(jì)費(fèi)的敏捷性云服...

關(guān)鍵字: ASIA 高性能計(jì)算 數(shù)據(jù)存儲(chǔ) 模擬

GRL東莞實(shí)驗(yàn)室將與上海和臺(tái)北實(shí)驗(yàn)室一同,提供Windows Host認(rèn)證服務(wù) 加利福尼亞州圣克拉拉市2022年9月22日 /美通社/ -- 高速信號(hào)和充電技術(shù)測(cè)...

關(guān)鍵字: Windows THUNDERBOLT USB OS

泰國曼谷2022年9月21日 /美通社/ -- 今日,在曼谷舉行的華為全聯(lián)接大會(huì)2022上,華為全面闡述了數(shù)據(jù)存儲(chǔ)產(chǎn)業(yè)"以數(shù)據(jù)為中心"的創(chuàng)新理念,聚焦場(chǎng)景需求為行業(yè)場(chǎng)景找技術(shù),推出場(chǎng)景化的存儲(chǔ)產(chǎn)品和解...

關(guān)鍵字: 華為 數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)分析 NAS

其實(shí),存儲(chǔ)既是一個(gè)微觀的概念,也是一個(gè)宏觀的概念。

關(guān)鍵字: 存儲(chǔ) 數(shù)據(jù)存儲(chǔ)

接下來測(cè)試燒寫功能,本次采用串口和USB燒寫方式。使用ISP串口燒寫這是51單片機(jī)常用的方案,本次測(cè)試比較順利,沒有遇到什么問題。但是USB燒寫沒有測(cè)試成功,USB燒寫方式不需要任何的驅(qū)動(dòng)和硬件支持,直接將USB線和ST...

關(guān)鍵字: PCB控制板 USB 串口

倉儲(chǔ)機(jī)器人領(lǐng)域的領(lǐng)先企業(yè)率先實(shí)現(xiàn)這一行業(yè)里程碑 馬薩諸塞州威爾明頓2022年9月16日 /美通社/ -- 倉儲(chǔ)處理自主移動(dòng)機(jī)器人(AMR)市場(chǎng)領(lǐng)先企業(yè)Locus Robot...

關(guān)鍵字: ROBOTICS AMR USB 移動(dòng)機(jī)器人

北京2022年9月13日 /美通社/ -- 近日,由存儲(chǔ)聯(lián)盟、BanTech智庫、百易傳媒DOIT、浪潮信息聯(lián)袂舉辦的"有數(shù)·對(duì)話"線上直播。本次對(duì)話,中國銀行數(shù)據(jù)資產(chǎn)運(yùn)營中心處長李東亞、中國農(nóng)業(yè)銀行研發(fā)中...

關(guān)鍵字: 數(shù)據(jù)存儲(chǔ) 數(shù)字化 智能化 裝機(jī)容量

智能硬件

22003 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉