Cai Bofeng 1, 2, Cai Weida 3, Wang Yihuai 1
(1. Sekolah Ilmu dan Teknologi Komputer, Universitas Soochow, Suzhou, Jiangsu 215006;
2. Sekolah Teknologi Informasi, Sekolah Kejuruan dan Teknik Taizhou, Taizhou, Jiangsu 225300; 3. Sekolah Astronautika, Universitas Politeknik Northwestern, Xi'an, Shaanxi 710072)
Untuk mengatasi permasalahan seperti kesulitan dan lamanya pengembangan aplikasi jaringan sensor nirkabel, melalui analisis yang mendalam tentang penyebabnya dan status quo teknologi pengembangan aplikasi jaringan sensor nirkabel, diusulkan arsitektur empat lapis sesuai dengan ide rekayasa perangkat lunak dan teori dasar desain komponen. Kembangkan model platform. Berdasarkan hal ini, dikembangkan platform pengembangan aplikasi jaringan sensor nirkabel berbasis KW01-ZigBee dengan arsitektur yang jelas, antarmuka eksternal yang kaya, dan komponen perangkat keras dan perangkat lunak yang lengkap. Keseluruhan pengembangan dibahas secara mendetail mulai dari papan pengembangan, desain komponen perangkat keras dan perangkat lunak, dan desain kerangka kerja rekayasa. teknik. Contoh proyek dan uji operasi yang dikembangkan oleh platform pengembangan membuktikan bahwa platform yang dikembangkan benar, praktis dan mudah digunakan, yang dapat mengurangi kesulitan teknologi pengembangan dan meningkatkan efisiensi pembangunan.
Nomor Klasifikasi Perpustakaan Cina: TP311
Kode identifikasi dokumen: SEBUAH
DOI: 10.16157 / j.issn.0258-7998.2017.03.013
Format kutipan berbahasa Mandarin: Cai Bofeng, Cai Weida, Wang Yihuai.Pengembangan platform pengembangan aplikasi jaringan sensor nirkabel KW01-ZigBee. Electronic Technology Application, 2017, 43 (3): 55-58.
Format kutipan bahasa Inggris: Cai Bofeng, Cai Weida, Wang Yihuai. Desain platform pengembangan aplikasi jaringan sensor nirkabel KW01-ZigBee. Application of Electronic Technique, 2017, 43 (3): 55-58.
0 Kata Pengantar
KW01 adalah chip Sub-GHz pertama di industri yang secara resmi diluncurkan oleh Freescale pada tahun 2014. Chip ini terdiri dari mikrokontroler KL26 berdasarkan inti ARM Cortex-M0 + dan modul frekuensi radio SX1231-RF.
Jaringan sensor nirkabel (Wireless Sensor Network, WSN) telah merambah ke berbagai bidang seperti pengobatan medis, perabot rumah tangga, dan transportasi.Namun, pengembangan aplikasinya melibatkan perancangan arsitektur dan skema jaringan, node, sirkuit komunikasi RF, komponen perangkat keras dan lunak, dan komunikasi. Pengetahuan dan teknologi seperti protokol, integrasi sistem operasi, penulisan program, dapat digunakan kembali, dan mudah dibawa memiliki ambang batas yang tinggi, yang mengarah pada pengembangan aplikasi WSN yang sulit, siklus yang panjang, biaya tinggi, serta daya rawat dan portabilitas produk yang buruk. Untuk mengatasi situasi ini, Mao Zhengchong et al. Meneliti pola desain aplikasi tertanam yang dapat dikonfigurasi, Fan Ningning et al. Mempelajari pengukuran dan kerangka kerja sistem kontrol, dan Cao Jingyu et al. Mempelajari kerangka kerja berbasis komponen perangkat lunak yang efisien. Namun, studi tersebut mengembangkan aplikasi dengan merancang komponen, dan belum merancang platform pengembangan dengan arsitektur yang lengkap. Untuk tujuan ini, makalah ini telah mengembangkan platform pengembangan aplikasi WSN yang relatif serbaguna, praktis, dan mudah digunakan berdasarkan KW01-ZigBee dengan struktur hierarki yang jelas, antarmuka yang kaya, dan komponen drive lengkap, yang sangat memudahkan pengembangan aplikasi WSN, dan akan mengurangi kesulitan pengembangan dan mempersingkat pengembangan. Siklus, dan dapat meningkatkan pemeliharaan dan portabilitas produk.
1 Pemodelan platform pengembangan
WSN umumnya terdiri dari beberapa node terminal, node terminal dengan fungsi perutean, dan beberapa node gateway (disebut sebagai node PC dalam artikel ini). Platform yang dikembangkan dalam makalah ini digunakan untuk pengembangan setiap node rekayasa aplikasi WSN, menggunakan model platform arsitektur empat lapis yang ditunjukkan pada Gambar 1.
Lapisan platform perangkat keras adalah kit pengembangan yang terdiri dari papan pengembangan KW01-ZigBee, penulis, dan kabel serial USB-TTL yang digunakan untuk menghubungkan node gateway dan PC. Untuk mengurangi biaya desain dan memastikan komunikasi yang stabil dan andal, papan pengembangan semua node di WSN adalah sama.
Kerangka kerja rekayasa sisi MCU digunakan untuk mengembangkan aplikasi dan terdiri dari lapisan abstraksi perangkat keras, lapisan komponen perangkat lunak, dan lapisan aplikasi. File lapisan abstraksi perangkat keras terutama digunakan untuk penyetelan ulang dan penautan daya chip. Lapisan komponen perangkat lunak mencakup komponen drive tingkat rendah, komponen aplikasi, dan komponen tingkat tinggi; kode pengguna lapisan aplikasi mencakup tugas pengguna, program utama, dan rutinitas layanan interupsi (Interrupt Service Routine, ISR). Untuk memfasilitasi pengembangan proyek aplikasi WSN yang kompleks, sistem operasi real-time (RTOS) MQXLite diintegrasikan ke dalam kerangka kerja untuk manajemen, penjadwalan, dan multitasking.
2 Papan pengembangan dan desain komponen perangkat keras
Papan pengembangan harus memiliki struktur yang jelas, mudah digunakan dan dirawat.Untuk alasan ini, papan pengembangan KW01-ZigBee dirancang dalam artikel ini. Diagram blok struktur perangkat keras ditunjukkan pada Gambar 2. KW01 MCU terdiri dari KL26 dan RF transceiver, memiliki 16 KB SRAM, 128 KB Flash dan UART, SPI, IIC, TSI, ADC, pengatur waktu dan modul lainnya. Ini memiliki kinerja radio tinggi, kecepatan transmisi cepat, jarak jauh, dan kemampuan pemrosesan yang kuat. Fitur seperti konsumsi daya yang sangat rendah.
Komponen adalah dasar dan jaminan untuk meningkatkan usabilitas dan portabilitas sistem, dan dapat meningkatkan efisiensi pengembangan saat digunakan untuk merakit sistem. Saat mendesain papan pengembangan, setiap modul sirkuit dirancang sebagai komponen dan menyediakan antarmuka yang jelas, yang dapat sangat memudahkan penggunaan pengguna. Misalnya, komponen sistem minimum perangkat keras terdiri dari sirkuit periferal skala minimum (seperti catu daya dan penyaringan, reset, osilator kristal, dll.) Yang diperlukan untuk operasi program; komponen sirkuit daya digunakan untuk mengubah input 5 V menjadi 3,3 V untuk digunakan oleh chip; komponen sirkuit ujung depan RF digunakan Untuk menghubungkan pin frekuensi radio RFIO dan antena.
Untuk memudahkan percobaan, penelitian ilmiah dan pengembangan aplikasi, pin MCU selain pin minimum sistem perangkat keras dikemas ke dalam berbagai komponen, seperti antarmuka UART, antarmuka penulis SWD, antarmuka baterai, antarmuka eksternal, dan komponen lainnya. Gambar 3 mengidentifikasi fungsi default pin, yang dapat digunakan secara langsung, sedangkan fungsi lainnya dapat digunakan kembali sesuai dengan tabel fungsi multiplexing pada manual referensi teknis KW01 yang diberikan di situs resmi NXP.
Selama pengembangan proyek, menghubungkan modul periferal ke komponen antarmuka yang sesuai dan fungsi pin multiplexing sesuai kebutuhan dapat sangat meningkatkan efisiensi pengembangan.
3 Desain komponen drive yang mendasari
KW01 mencakup modul perangkat keras seperti RF, GPIO, ADC, dll. Saat pemrograman, modul perangkat keras yang sesuai dioperasikan melalui program driver, tetapi program driver hanya dapat digunakan kembali dan ditransplantasikan saat dikemas ke dalam komponen driver yang mendasarinya, dan juga dapat digunakan secara langsung oleh pengguna, sehingga mengurangi kesulitan pengembangan aplikasi.
Karena keterbatasan ruang, artikel ini hanya memperkenalkan proses desain komponen penggerak RF. Menurut konsep desain komponen, operasi dasar inisialisasi modul RF, penerimaan data, pengiriman data, dan pendeteksian energi dapat diringkas menjadi fungsi fungsional independen, tetapi untuk kenyamanan aplikasi praktis, itu juga harus dienkapsulasi dengan inisialisasi parameter dan mekanisme CSMA / CA untuk mengirim data , Atur nomor saluran dan fungsi lainnya. Karena semuanya melibatkan pengoperasian register tingkat rendah dari perangkat keras RF, yang merupakan fungsi driver tingkat rendah, semuanya dikemas sesuai dengan prinsip desain komponen dan disimpan dalam file sumber rf.c. Pada saat yang sama, mereka disertai dengan rf.h untuk menyimpan definisi makro terkait dan register tingkat rendah. Pemetaan dan deklarasi prototipe fungsi mengemudi. Dalam desain komponen, penting untuk mendesain prototipe fungsi pengemudi yang mendasarinya dan memberikan komentar terperinci untuk memudahkan pengguna. Misalnya fungsi dari fungsi data penerima RF adalah menerima frame data dari antrian FIFO dan mengembalikan tanda penerimaan berhasil atau tidak.Oleh karena itu, perlu disediakan alamat buffer data untuk menyimpan data yang diterima, serta unit penunjuk dan alamat filter perangkat keras untuk menyimpan panjang data yang diterima. (Yaitu, alamat perangkat keras dari node dalam proyek aplikasi WSN saat ini digunakan untuk menyaring paket data yang dikirim oleh proyek lain. Alamat perangkat keras setiap node dalam proyek yang sama adalah sama). Prototipe fungsi dirancang sebagai:
// Ringkasan fungsi: RF menerima bingkai data
// Deskripsi parameter: plen: penunjuk panjang data yang diterima,
// pbuf: menerima alamat buffer data pertama, hw_adr: alamat filter perangkat keras
// Fungsi mengembalikan: = 0, penerimaan normal, = nilai lain, penerimaan abnormal
uint_8 RFReceiveFrame (uint_8 * pbuf, uint_8 * plen, uint_8 hw_adr);
4 Desain kerangka rekayasa sisi MCU
Kerangka kerja rekayasa sisi MCU digunakan untuk menyediakan templat teknik untuk pengembangan program node guna mengurangi kesulitan pengembangan dan meningkatkan efisiensi pengembangan.
4.1 Prinsip dasar desain kerangka teknik
Ikuti ide-ide dasar rekayasa perangkat lunak yang dapat digunakan kembali, portabel, mudah dipahami, dan mudah dirawat, serta meletakkan dasar yang kokoh untuk memperpendek siklus pengembangan produk dan meningkatkan efisiensi pengembangan; berdasarkan desain komponen, melalui desain dan penerapan berbagai komponen untuk meningkatkan kerangka kerja Usabilitas dan portabilitas mengurangi kesulitan pengembangan aplikasi; struktur direktori diklasifikasikan secara wajar, dan konten file diringkas, disortir, dan diatur untuk meningkatkan pemeliharaan produk perangkat lunak.
4.2 Struktur organisasi kerangka keteknikan
Menurut persyaratan rekayasa perangkat lunak bahwa kerangka kerja rekayasa harus memenuhi persyaratan struktur yang jelas, pengaturan file yang wajar, portabilitas dan modifikasi yang mudah, serta prinsip desain di atas dan ide desain model platform arsitektur empat tingkat pada Gambar 1, pohon yang ditunjukkan pada Tabel 1 dibangun. Bentuk struktur kerangka kerja rekayasa MQXLite terpadu (All-in-one MQXLite FrameWork, AMQXLFW).
4.3 Analisis desain AMQXLFW
Kecuali untuk folder yang khusus untuk lingkungan pengembangan, semua folder yang terdapat dalam kerangka proyek sama. Tabel 1 didasarkan pada 12 folder yang terdapat dalam lingkungan pengembangan Kinetis (Kinetis Development Studio, KDS), dengan nomor dan nama tetap. Prinsip penyimpanan dokumen adalah sebagai berikut:
01_Doc menyimpan dokumen proyek, yang diperbarui saat proyek berubah. 02_CPU dan 03_MCU masing-masing menyimpan file startup penyetelan ulang daya terkait inti dan chip. Karena pabrikan inti hanya bertanggung jawab untuk merancang dan memelihara kode inti dan sumber dan tidak memproduksi chip, mereka disimpan secara terpisah untuk porting dan pembaruan. 04_Linker_File menyimpan skrip tautan yang menyediakan kode program, tabel vektor interupsi, dan alamat penyimpanan variabel konstan, dan dimodifikasi dengan lingkungan pengembangan. Komponen yang cukup dan lengkap dapat secara efektif mengurangi kesulitan pengembangan teknik 05_Driver, 06_App_Component, 07_Soft_Component mengklasifikasikan dan menyimpan driver tingkat rendah, aplikasi dan komponen tingkat tinggi untuk memfasilitasi integrasi, pembaruan, dan transplantasi komponen. Nama dan konten aplikasi dan komponen tingkat tinggi tidak boleh diubah setelah pengemasan. 08_Source dan 09_MQXLite adalah direktori utama untuk pemrograman dan debugging tanpa sistem operasi dan dengan sistem operasi masing-masing. Nama file di 08_Source tetap dan konten diubah sesuai dengan proyek. Include.h berisi semua file header komponen (gunakan 01_app_include.h untuk sistem operasi) , Isr.c berisi interupsi penerimaan RF isr_gpio_cd dan seterusnya. Isi 09_MQXLite ditunjukkan pada Tabel 2. isr.c masih valid, karena alur pemrosesan interupsi sama ketika ada / tanpa sistem operasi, tetapi main.c digunakan untuk menginisialisasi dan memulai MQXLite, dan aplikasi adalah direktori yang ditambahkan sesuai dengan persyaratan desain tugas MQXLite, termasuk 3 File tetap dan sejumlah file tugas pengguna, sisa file folder diekstraksi dari direktori instalasi MQX atau KDS, tidak perlu mengubah papan pengembangan dalam teks.
4.4 Proses dan keuntungan menggunakan pengembangan kerangka kerja
Dengan kerangka kerja teknik, program MCU dapat dikembangkan dengan mudah dan cepat selama proses yang ditunjukkan pada Gambar 4 diikuti. Jika kerangka kerja tidak digunakan, file kernel dan chip dapat diperoleh dari pabrikan, dan file tautan dapat dibuat oleh lingkungan, tetapi file lainnya dalam proyek perlu ditulis sendiri, dan sistem operasi perlu ditransplantasikan, yang sulit untuk dikembangkan, efisiensi rendah dan siklus panjang; saat menggunakan kerangka kerja, Anda hanya perlu mengubah atau menambahkan beberapa file dan kode untuk menyelesaikan tugas pengembangan, dan mudah untuk berpindah antar aplikasi yang berbeda.
5 Contoh aplikasi platform pengembangan
5.1 Fungsi dasar contoh aplikasi
Arsitektur perangkat keras dari proyek contoh aplikasi mencakup node terminal, node PC dan PC. Node PC berkomunikasi dengan port serial PC. Baik node terminal maupun node PC menggunakan papan pengembangan KW01-ZigBee dan berkomunikasi melalui RF. Fungsi dasar dari contoh ini adalah: PC mengirimkan paket data perintah untuk mengumpulkan suhu chip, mengirimkannya ke node PC melalui port serial, dan kemudian meneruskannya ke node terminal melalui RF. Setelah menerimanya, bingkai tersebut dihilangkan bingkai, dan suhu chip dikumpulkan dan dikelompokkan melalui sensor suhu KW01 sendiri. Bingkai dikirim ke node PC melalui RF untuk tampilan PC.
5.2 Pengembangan program MCU
Menurut fungsi yang akan direalisasikan oleh node terminal, hanya satu ISR dan tiga tugas yang diperlukan untuk mengembangkan program MCU: (1) RF menerima interupsi: menerima paket data dari node PC dan memulai tugas penerimaan RF, format bingkai data dapat ditentukan sendiri . (2) Tugas penerimaan RF: Menganalisis paket data yang diterima dan memulai tugas pengumpulan suhu dengan perintah data. File tugas telah disertakan dalam kerangka kerja, dan dapat dimodifikasi sesuai dengan petunjuk di file tugas. (3) Tugas pengumpulan suhu chip: Kumpulkan suhu chip melalui saluran dan bingkai AD, lalu mulai tugas pengiriman RF. (4) Tugas pengiriman RF: Mengirim paket data yang berisi suhu chip ke node PC melalui RF, dan kemudian node PC mengirimkannya ke PC. File tugas telah disertakan dalam kerangka kerja.
Kemudian, tambahkan task_temp_ad.c ke aplikasi, dan kode untuk mengumpulkan suhu dan pembingkaian adalah sebagai berikut:
rf_sendBuf = (uint_8) T; // Header bingkai
rf_sendBuf = 57; // panjang bingkai efektif
rf_sendBuf = (uint_8) hd_adr; // alamat filter perangkat keras
// Salin konten dari bingkai hilir ke bingkai hulu
untuk (i < = 3; i < = 58; i ++) rf_sendBuf = rf_revBuf ;
// Panggil komponen ADC ad_read dari KW01 untuk mengumpulkan suhu chip
ADResult = ad_read (26); // Kumpulkan nilai AD dari saluran nomor 26
// Regresi fisik: hitung nilai suhu sesuai dengan rumus pada manual chip
Vtmp = (ADResult * 3300) > > 16; // Nilai sampling tegangan mV
tmp = 25- (Vtmp-706) /1.62; // hitung suhu
// Hitung bagian integer dan pecahan suhu dan enkapsulasi dalam dua byte pertama dari akhir bingkai
rf_sendBuf = (uint_8) tmp;
rf_sendBuf = (uint_8) ((tmp- (uint_8) tmp) * 10 + 0,5);
rf_sendBuf = (uint_8) 'D'; // Akhir bingkai
Langkah-langkah selanjutnya dapat dengan cepat menyelesaikan pengembangan program node terminal MCU sesuai dengan alur kerja dan template kerangka kerja pada Gambar 4. Pengembangan program MCU dari node PC serupa.
5.3 Contoh aplikasi menjalankan tes
Dengan bantuan VS2013 untuk mengembangkan program sisi PC dan antarmuka uji, perintah pengumpulan suhu dikeluarkan melalui antarmuka, dan simpul terminal merangkum suhu chip yang dikumpulkan dalam dua byte terakhir dari data valid dari bingkai respons setelah menerimanya, dan mengirimkannya ke sisi PC untuk ditampilkan melalui RF. Dengan menjalankan tes berulang kali, hasil tes stabil; ketika chip dipanaskan atau didinginkan, hasil tes berubah sesuai. Hasil pengembangan dan pengujian proyek contoh menunjukkan bahwa platform pengembangan yang dikembangkan oleh makalah ini dapat dengan cepat menyelesaikan pekerjaan pengembangan, tugas teknik berjalan dan menjadwalkan secara normal, serta stabilitas dan kinerja waktu nyata dapat memenuhi persyaratan teknik.
6. Kesimpulan
Makalah ini mengembangkan platform pengembangan aplikasi WSN yang secara efektif dapat mengurangi kesulitan pengembangan dan meningkatkan efisiensi pengembangan. Dengan merancang sistem minimum perangkat keras MCU, berbagai antarmuka eksternal, dan driver tingkat bawah perangkat keras sebagai komponen untuk digunakan pengguna; dengan memberikan templat kerangka pemrograman, metode aplikasi, dll., Pengguna dapat dengan cepat menyelesaikannya selama mereka memodifikasi file templat dengan tepat dan menambahkan tugas sesuai dengan proyek tertentu. Pengembangan aplikasi. Dalam penelitian lanjutan, kami akan terus memperkuat desain dan penelitian antarmuka, meningkatkan perpustakaan komponen, dan mengoptimalkan struktur kerangka kerja teknik untuk meningkatkan kegunaan kembali dan portabilitas. Metode pengembangan yang diusulkan dalam artikel ini memiliki referensi yang bagus untuk pengembangan platform serupa.
referensi
NXP.MKW01Z128 Reference Manual Rev.2. (2014-03-01). Http://www.nxp.com/.
Mao Zhengchong, Ye Zhen, Huang Fang, dll. Pola Desain Aplikasi Tertanam yang Dapat Dikonfigurasi Berbasis Komponen Pengukuran dan Kontrol Komputer, 2015, 23 (4): 1432-1434, 1437.
Fan Ningning, Wang Yihuai, Chen Ruijie. Penelitian tentang kerangka pengukuran jarak jauh dan sistem kontrol berdasarkan kombinasi WSCN dan E-Ethernet. Modern Electronic Technology, 2016, 39 (2): 53-57, 61.
Cao Jingyu, Chai Weiyan, Wang Bo, dkk.Penelitian tentang kerangka kerja komponenisasi perangkat lunak yang efisien dalam lingkungan komputasi terdistribusi yang tertanam. Acta Armamentarius, 2013, 34 (4): 451-458
Manual referensi RTOS NXP.MQXLite. (2014-09-10). Http://www.nxp.com/.
CHOVANEC M, SARAFIN P. Jadwal waktu nyata untuk robotika seluler dan aplikasi WSN. FedCSIS, 2015 (5): 1199-1202.
Manual referensi perangkat keras pengembangan NXP.MKW01. (2014-03-01). Http://www.nxp.com/.
Wang Yihuai, Zhu Shilang, Yao Wangshu. Tertanam teknologi pengembangan aplikasi MQX sistem operasi real-time. Beijing: Electronic Industry Press, 2014.
Qu Xinhuai, Zhang Xianyu, Ding Birong. Penelitian dan Implementasi Kerangka Kerja Komponen Tertanam Terkendali. Aplikasi dan Perangkat Lunak Komputer, 2014, 31 (2): 14-16, 85.
YAHLALI M, CHOUARFIA A. Menuju evaluasi perakitan komponen perangkat lunak IET Software, 2015, 9 (1): 1-6.