SILICON LABS лого

AN451
WIRELESS M-BUS ПРОГРАММЫН ХЭРЭГЖИЛТ

Танилцуулга

Энэхүү хэрэглээний тэмдэглэлд Silicon Labs C8051 MCU болон EZRadioPRO® ашиглан Wireless M-Bus-ийн Silicon Labs хэрэгжилтийг тайлбарласан болно. Утасгүй M-автобус нь 868 МГц давтамжийн зурвасыг ашиглан тоолуур уншихад зориулсан Европын стандарт юм.

Стек давхаргууд

Утасгүй M-Bus нь 3 давхаргат OSI загварын дэд хэсэг болох 7 давхаргат IEC загварыг ашигладаг (Зураг 1-ийг үз).

SILICON LABS Утасгүй M-BUS програм хангамжийн хэрэгжилт AN451Физик (PHY) давхарга нь EN 13757-4-д тодорхойлогддог. Физик давхарга нь битүүдийг хэрхэн кодлож, дамжуулах, RF модемийн шинж чанар (чипийн хурд, оршил, синхрончлолын үг), RF-ийн параметрүүдийг (модуляц, төвийн давтамж, давтамжийн хазайлт) тодорхойлдог.
PHY давхарга нь техник хангамж болон програм хангамжийн хослолыг ашиглан хэрэгждэг. EZRadioPRO нь RF болон модемийн бүх функцийг гүйцэтгэдэг. EZRadioPRO нь пакет зохицуулагчтай FIFO горимд ашиглагддаг. MbusPhy.c модуль нь SPI интерфэйс, кодчилол/код тайлах, унших/бичих блоклох, пакеттай харьцах, хүлээн авагчийн төлөвийг удирддаг.
M-Bus Data link давхарга нь MbusLink.c модульд хэрэгждэг. M-Bus Application Programming интерфэйс нь үндсэн урсгал дахь хэрэглээний давхаргаас дуудаж болох олон нийтийн функцүүдээс бүрдэнэ. MbusLink модуль нь мөн Data Link Layer-ийг хэрэгжүүлдэг. Өгөгдлийн холбоосын давхарга нь програмын TX буферээс өгөгдлийг MbusPhy TX буферт форматлаж, хуулж, шаардлагатай толгой болон CRC-үүдийг нэмнэ.
Хэрэглээний давхарга нь өөрөө M-bus програмын нэг хэсэг биш юм. Хэрэглээний давхарга нь олон төрлийн өгөгдлийг дамжуулахад хэрхэн форматлахыг тодорхойлдог. Ихэнх тоолуур зөвхөн нэг эсвэл хоёр төрлийн өгөгдөл дамжуулах шаардлагатай байдаг. Тоолуурт ямар ч төрлийн өгөгдлийг багтаахын тулд их хэмжээний код нэмбэл шаардлагагүй код, тоолуурт зардал нэмэгдэх болно. Номын сан эсвэл толгой хэсгийг хэрэгжүүлэх боломжтой байж магадгүй юм file өгөгдлийн төрлүүдийн бүрэн жагсаалттай. Гэсэн хэдий ч ихэнх тоолуурын хэрэглэгчид ямар төрлийн өгөгдөл дамжуулах ёстойгоо мэддэг бөгөөд форматлах дэлгэрэнгүй мэдээллийг стандартад хандаж болно. Бүх нийтийн уншигч эсвэл үнэрлэгч нь PC-ийн GUI дээр програмын өгөгдлийн төрлүүдийн иж бүрэн багцыг хэрэгжүүлж болно. Эдгээр шалтгааны улмаас хэрэглээний давхаргыг ex ашиглан хэрэгжүүлдэгampтоолуур болон уншигчдад зориулсан програмууд.

Шаардлагатай стандартууд
  1. EN 13757-4
    EN 13757-4
    Тоолуурын холбооны систем, тоолуурын зайнаас унших
    4-р хэсэг: Утасгүй тоолуурын заалт
    868 МГц-аас 870 МГц-ийн SRD зурваст ажиллах радиометрийн заалт
  2. EN 13757-3
    Тоолуурын холбооны систем, тоолуурын зайнаас унших
    3-р хэсэг: Зориулалтын хэрэглээний давхарга
  3. IEC 60870-2-1:1992
    Удирдлагын төхөөрөмж ба систем
    5-р хэсэг: Дамжуулах протоколууд
    1-р хэсэг: Холбоос дамжуулах журам
  4. IEC 60870-1-1:1990
    Удирдлагын төхөөрөмж ба систем
    5-р хэсэг: Дамжуулах протоколууд
    1-р хэсэг: Дамжуулах хүрээний формат
Тодорхойлолт
  • М-автобусM-Bus нь Европ дахь тоолуурын заалтыг утсаар холбох стандарт юм.
  • Утасгүй M-автобус—Европ дахь тоолуур унших програмуудад зориулсан утасгүй M-Bus.
  • PHY— Физик давхарга нь өгөгдлийн бит, байтыг хэрхэн кодлох, дамжуулахыг тодорхойлдог.
  • API-Хэрэглээний программист интерфейс.
  • ХОЛБОО -Data Link Layer нь блок болон фреймүүдийг хэрхэн дамжуулахыг тодорхойлдог.
  • ХХЗХ-Циклийн илүүдэл шалгах.
  • FSK -Давтамж шилжүүлэх.
  • Чип-Дамжуулсан мэдээллийн хамгийн бага нэгж. Нэг өгөгдлийн бит нь олон чип хэлбэрээр кодлогдсон байдаг.
  • Модуль-АС кодын эх сурвалж .c file.

M-Bus PHY функциональ тодорхойлолт

Оршил дараалал

M-автобусны тодорхойлолтоор заасан оршил дараалал нь тэг болон нэгийг ээлжлэн солих бүхэл тоо юм. Нэгийг дээд давтамж, тэгийг доод давтамж гэж тодорхойлно.
nx (01)
Si443x-ийн оршил сонголтууд нь ээлжлэн нэг ба тэгээс бүрдэх бүхэл тоо юм.
nx (1010)
Нэмэлт эхтэй оршил нь асуудал үүсгэхгүй, гэхдээ синхрончлолын үг болон ачааллыг нэг битээр буруу тохируулах болно.
Үүний шийдэл нь Модуляцийн хяналт 2 бүртгэл (0x71) дэх хөдөлгүүрийн битийг тохируулах замаар багцыг бүхэлд нь эргүүлэх явдал юм. Энэ нь оршил, синк үг болон TX/RX өгөгдлийг хөрвүүлнэ. Үүний үр дүнд TX өгөгдлийг бичих эсвэл RX өгөгдлийг унших үед өгөгдлийг эргүүлэх хэрэгтэй. Мөн Si443x Synchronization Word регистрүүд рүү бичихээс өмнө синхрончлолын үгийг урвуу болгодог.

Синхрончлолын Word

EN-13757-4-д шаардагдах синхрончлолын үг нь Mode S ба Mode R-д 18 чип эсвэл T загварт 10 чип байна. Si443x-ийн синхрончлолын үг нь 1-4 байт байна. Гэхдээ синхрончлолын үгийн өмнө үргэлж оршил байдаг тул оршилын сүүлийн зургаан битийг синхрончлолын үгийн нэг хэсэг гэж үзэж болно; Тиймээс эхний синхрончлолын үг нь тэгийн гурван давталтаар дүүргэгдэж, дараа нь нэг байна. Si443x регистрүүдэд бичихээс өмнө синхрончлолын үгийг нөхдөг.
Хүснэгт 1. S горим ба R горимын синхрончлолын үг

EN 13757-4 00 01110110 10010110 хоёртын
00 76 96 Hex
(01) x 3 бүхий дэвсгэр 01010100 01110110 10010110 хоёртын
54 76 96 Hex
нэмэлт 10101011 10001001 01101001 хоёртын
AB 89 69 Hex

Хүснэгт 2. Mode T Meter-ийн синхрончлолын үгийг бусадтай

синк хийх синк хийх синк хийх
ҮГ ҮГ ҮГ
3 2 1
Дамжуулах оршил урт

Хамгийн бага оршил нь дөрвөн өөр үйлдлийн горимд зориулагдсан. Оршил хэсгийг заасан хугацаанаас урт байлгахыг зөвшөөрнө. Оршил хэсэгт зургаан чипийг хасвал Si443x оршилд зориулсан хамгийн бага тооны чип гарч ирнэ. Уг хэрэгжилт нь оршил илрүүлэх болон харилцан ажиллах чадварыг сайжруулахын тулд бүх богино оршил горимд оршил үгийн хоёр нэмэлт хавчуурыг нэмдэг. Урт оршилтой S горимын оршил маш урт; Тиймээс хамгийн бага оршил ашигласан болно. Оршил үгийн уртыг nibbles хэлбэрээр Preamble Length (0x34) регистрт бичнэ. Оршил уртын бүртгэл нь зөвхөн дамжуулах үед оршил хэсгийг тодорхойлдог. Хамгийн бага тодорхойлолт ба оршил уртын тохиргоог 3-р хүснэгтэд нэгтгэн үзүүлэв.
Хүснэгт 3. Дамжуулах оршил урт

EN-13757-4
хамгийн бага
Si443x Оршил
Тохируулах
Синк хийх
Үг
Нийт нэмэлт
nx (01) чипс хазах чипс чипс чипс чипс
Mode S товч танилцуулга 15 30 8 32 6 38 8
Mode S урт оршил 279 558 138 552 6 558 0
T горим (метр-бусад) 19 38 10 40 6 46 8
R горим 39 78 20 80 6 86 8

Хүлээн авах хамгийн бага оршил нь Оршил илрүүлэх хяналтын бүртгэлээр (0x35) тодорхойлогддог. Хүлээн авах үед ашиглах боломжтой оршилыг тодорхойлохын тулд синхрончлолын үгийн битийн тоог заасан хамгийн бага оршилоос хасах шаардлагатай. Хүлээн авагчийн суулгах хамгийн бага хугацаа нь AFC идэвхжсэн бол 16 чип, AFC идэвхгүй бол 8 чип байна. Оршил илрүүлэх хяналтын бүртгэлийн хамгийн бага тохиргоог тодорхойлохын тулд хүлээн авагчийн суурьших хугацааг мөн ашиглах боломжтой оршил хэсгээс хасна.

Хуурамч оршил гарах магадлал нь оршил илрүүлэх хяналтын бүртгэлийн тохиргооноос хамаарна. 8 чипийн богино тохиргоо нь хэдхэн секунд тутамд хуурамч оршил илрүүлэхэд хүргэдэг. Санал болгож буй 20 чипийн тохиргоо нь худал оршил илрүүлэх магадлал багатай үйл явдал болгодог. Mode R болон Mode SL-ийн оршил урт нь санал болгож буй тохиргоог ашиглахад хангалттай урт байна.
Оршил хэсгийг 20 чипээс илүү урт илрүүлдэг болгох нь маш бага ашиг тустай.
AFC нь богино оршилтой Model S болон T Model-д идэвхгүй болсон. Энэ нь хүлээн авагчийг суулгах хугацааг багасгаж, илүү урт оршил илрүүлэх тохиргоог зөвшөөрдөг. AFC идэвхгүй болсон үед T горим нь санал болгож буй 20 чипийн тохиргоог ашиглаж болно. Богино оршил бүхий Model S-д 4 nibbles буюу 20 чипийн тохиргоог ашигладаг. Энэ нь энэ загварын хувьд хуурамч оршил илрүүлэх магадлалыг арай өндөр болгодог.
Хүснэгт 4. Оршил илрүүлэх

EN-13757-4
хамгийн бага
Синк хийх
Үг
ашиглах боломжтой
оршил
RX төлбөр тооцоо Илрүүлэх
мин
Si443x Оршил
Илрүүлэх тохиргоо
nx (01) чипс чипс чипс чипс чипс хазах чипс
Mode S товч танилцуулга 15 30 6 24 8* 16 4 16
Model S урт оршил 279 558 6 552 16 536 5 20
Загвар T (метр-бусад) 19 38 6 32 8* 24 5 20
R горим 39 78 6 72 16 56 5 20
*Жич: AFC идэвхгүй болсон

Хүлээн авагч нь хамгийн бага заасан оршилыг ашиглан дамжуулагчтай хамтран ажиллахаар тохируулагдсан. Энэ нь хүлээн авагч нь ямар ч M-автобустай нийцтэй дамжуулагчтай хамтран ажиллах болно.
Wireless M-Bus техникийн үзүүлэлт нь S1 горимын хувьд хамгийн багадаа 558 чип бүхий маш урт оршил шаарддаг. Оршилыг дамжуулахад 17 мс орчим хугацаа шаардагдана. Si443x ийм урт оршил шаарддаггүй бөгөөд урт оршил нь ашиг тусаа өгөхгүй. Урт оршил нь Mode S2-д нэмэлт гэж тэмдэглэгдсэн боловч Si443x-тэй урт оршил ашиглах шалтгаан байхгүй. Хэрэв нэг талын харилцаа холбоог хүсч байвал T1 горим нь илүү богино оршил, өндөр өгөгдлийн хурд, батерейны хугацааг уртасгах болно. Mode S2 ашиглан хоёр талын харилцаа холбоо шаардлагатай бол товч оршил бичихийг зөвлөж байна.
Урт оршилтой Model S-ийн илрүүлэх босго нь богино оршилтой Model S-д дамжуулагдсан оршил nibbles-ийн тооноос урт байгааг анхаарна уу. Энэ нь урт оршил Mode S хүлээн авагч нь богино оршил Mode S дамжуулагчийн оршилыг илрүүлэхгүй гэсэн үг юм. Урт оршил Mode S хүлээн авагч нь урт оршил хэсгээс ямар нэгэн ашиг тус хүртэх бол энэ нь зайлшгүй шаардлагатай.
Богино оршил Mode S хүлээн авагч нь оршил хэсгийг илрүүлж, богино оршил Mode S горимоос пакетуудыг хүлээн авах болно гэдгийг анхаарна уу.
дамжуулагч ба урт оршилтой Mode S дамжуулагч; Тиймээс ерөнхийдөө тоолуур уншигч нь богино оршил Mode S хүлээн авагчийн тохиргоог ашиглах ёстой.

Кодлох/декодлох

Wireless M-bus-ийн үзүүлэлт нь хоёр өөр кодчилолын аргыг шаарддаг. Манчестерийн кодчилолыг Mode S ба Mode R-д ашигладаг. Манчестер кодчилолыг T Model-ийн бусад-метрийн холболтод мөн ашигладаг. Model T тоолуур-бусад холбоос нь 3 кодчиллын 6-ыг ашигладаг.
1. Манчестер кодлогдсон/декод тайлах
Манчестерийн кодчилол нь энгийн бөгөөд хямд модем ашиглан цагийг найдвартай сэргээх, хянах боломжийг олгодог RF системд түгээмэл байдаг. Гэсэн хэдий ч Si443x гэх мэт орчин үеийн өндөр хүчин чадалтай радиод Манчестерийн кодчилол шаардлагагүй. Манчестер кодчилол нь үндсэндээ одоо байгаа стандартуудтай нийцэхийн тулд дэмжигддэг боловч Манчестерийн кодчилолыг ашиглаагүй үед Si443x-ийн өгөгдлийн хурд хоёр дахин нэмэгддэг.
Si443x нь техник хангамж дахь Манчестерийн кодчилол болон багцыг бүхэлд нь тайлахыг дэмждэг. Харамсалтай нь синхрончлолын үг нь Манчестерийн кодлогдоогүй байна. Синхрончлолын үгэнд Манчестерийн хүчингүй дарааллыг зориудаар сонгосон. Энэ нь Манчестерийн кодчилолыг Si443x зэрэг одоо байгаа ихэнх радиотой нийцэхгүй болгодог. Үүний үр дүнд Манчестерийн кодчилол, тайлалтыг MCU хийх ёстой. Шифрлэгдээгүй өгөгдлийн байт бүр найман өгөгдлийн битээс бүрдэнэ. Манчестерийн кодчилолыг ашиглан өгөгдлийн бит бүрийг хоёр чиптэй тэмдэг болгон кодлодог. Кодлогдсон өгөгдлийг FIFO радиод нэг удаад найман чип бичих ёстой тул нэг удаад нэг ширхэг өгөгдлийг кодлож, FIFO-д бичдэг.
Хүснэгт 5. Манчестерийн кодчилол

өгөгдөл Окс12 0х34 байт
Окс1 0х2 0х3 0х4 хазах
1 10 11 100 хоёртын
чип 10101001 10100110 10100101 10011010 хоёртын
FIFO OxA9 OxA6 OxA5 Ox9A Hex

Дамжуулах байт бүрийг кодлох байт функц рүү нэг байтаар дамжуулдаг. Кодлох байт функц нь кодчилох nibble функцийг хоёр удаа дуудна, эхлээд хамгийн чухал, дараа нь хамгийн бага ач холбогдол бүхий хазалтын хувьд.
Програм хангамжийн Манчестер кодчилол нь тийм ч хэцүү биш юм. Хамгийн чухал битээс эхлэн нэгийг нь "01" чип дараалал болгон кодлодог. Тэг нь "10" чипийн дараалал хэлбэрээр кодлогдсон. Үүнийг гогцоо болон тэмдэг тус бүрт хоёр бит шилжүүлэх замаар хялбархан хийж болно. Гэсэн хэдий ч хазах бүрт энгийн 16 оруулга хайх хүснэгт ашиглах нь илүү хурдан юм. Encode Manchester nibble функц нь өгөгдлийн nibble-ийг кодлож, дараа нь FIFO руу бичдэг. Урвуутай оршилд тавигдах шаардлагуудыг тооцохын тулд FIFO-д бичихийн өмнө чипүүдийг урвуугаар нь эргүүлнэ.
Хүлээн авах үед FIFO дахь байт бүр нь найман чипээс бүрдэх бөгөөд нэг өгөгдлийн кодыг задалдаг. Унших блок функц нь FIFO-оос нэг байт уншиж, тайлах байт функцийг дууддаг. Урвуутай оршилд тавигдах шаардлагуудыг харгалзан FIFO-оос уншсаны дараа чипүүдийг урвуу болгодог. Манчестерийн кодчилсон чипүүдийн байт бүрийг өгөгдлийн жижиг хэсэг болгон задалдаг. Шифрлэгдсэн nibble нь write nibble RX буфер функцийг ашиглан RX буферт бичигдэнэ.
Өгөгдлийн кодчилол болон тайлах үйлдлийг нэг удаад нэг удаа хийдэг болохыг анхаарна уу. Буферт кодлоход кодлогдоогүй өгөгдлөөс хоёр дахин том хэмжээтэй нэмэлт буфер шаардлагатай болно. Кодлох, тайлах нь хамгийн хурдан дэмждэг өгөгдлийн хурдаас (секундэд 100 к чип) хамаагүй хурдан байдаг. Si443x нь FIFO-д олон байт унших, бичихийг дэмждэг тул зөвхөн нэг байт унших, бичихэд бага хэмжээний зардал гардаг. 10 шифрлэгдсэн чипэд 100 мкс зарцуулдаг. Үүний давуу тал нь 512 байт RAM хэмнэлт юм.
2. Зургаанаас гурав нь код тайлах
EN-13757-4-д заасан зургаагаас гурвыг нь кодлох аргыг MCU дээрх програм хангамжид мөн хэрэгжүүлдэг. Энэ кодчилол нь тоолуураас нөгөө рүү шилжих өндөр хурдтай (секундэд 100 к чип) T горимд ашиглагддаг. Загвар T нь утасгүй тоолуурын дамжуулах хамгийн богино хугацаа, батерейны хамгийн урт хугацааг хангадаг.
Дамжуулах өгөгдлийн байт бүрийг хоёр nibble-д хуваана. Хамгийн чухал хазалтыг эхлээд кодлож, дамжуулдаг. Дахин хэлэхэд, энэ нь encode nibble функцийг хоёр удаа дууддаг encode byte функцийг ашиглан хэрэгждэг.
Өгөгдлийн хазайлт бүрийг зургаан чиптэй тэмдэг болгон кодлодог. Зургаан чиптэй тэмдэгтүүдийн дарааллыг 8 чиптэй FIFO дээр бичсэн байх ёстой.
Кодчилол хийх явцад хоёр байт өгөгдлийг дөрвөн nibble хэлбэрээр кодлодог. Нибэл бүр нь 6 чиптэй тэмдэг юм. Дөрвөн 6 чип тэмдэгтийг гурван байт болгон нэгтгэдэг.
Хүснэгт 6. Зургаан кодчилолын гурав

өгөгдөл 0х12 0х34 байт
Окс1 0х2 0х3 0х4 хазах
чип 15 16 13 34 наймт
1101 1110 1011 11100 хоёртын
FIFO 110100 11100010 11011100 хоёртын
0х34 OxE2 OxDC Hex

Програм хангамжийн хувьд зургаагаас гурвын кодчилол нь үүрлэсэн гурван функцийг ашиглан хэрэгждэг. Encode byte функц нь encode nibble функцийг хоёр удаа дуудна. Encode nibble функц нь зургаан чиптэй тэмдэгтийг хайх хүснэгтийг ашигладаг бөгөөд Зургаан функцээс Гурав дахь Shift дээр тэмдэг бичдэг. Энэ функц нь програм хангамжид 16 чипийн ээлжийн бүртгэлийг хэрэгжүүлдэг. Тэмдэглэгээ нь ээлжийн бүртгэлийн хамгийн бага ач холбогдол бүхий байт дээр бичигдэнэ. Бүртгэлийг хоёр удаа зүүн тийш шилжүүлнэ. Үүнийг гурван удаа давтана. Шилжилтийн регистрийн дээд байтад бүтэн байт байвал түүнийг урвуу болгож FIFO руу бичнэ.
Өгөгдлийн байт бүр нь нэг ба хагас кодлогдсон байтаар кодлогдсон тул эхний кодлогдсон байт зөв байхын тулд ээлжийн бүртгэлийг эхлээд цэвэрлэх нь чухал юм. Хэрэв пакетийн урт нь сондгой тоо байвал бүх байтыг кодчилсны дараа ээлжийн бүртгэлд нэг nibble үлдэнэ. Үүнийг дараагийн хэсэгт тайлбарласны дагуу шуудангийн хаягаар зохицуулна.
Шифрлэгдсэн зургаагаас гурвыг нь тайлах нь урвуу процедур юм. Кодыг тайлах үед кодлогдсон гурван байтыг хоёр өгөгдлийн байт болгон задалдаг. Програм хангамжийн шилжилтийн бүртгэлийг дахин код тайлсан өгөгдлийн байтыг нэгтгэхэд ашигладаг. Код тайлахад 64 оролттой урвуу хайлтын хүснэгтийг ашигладаг. Энэ нь цөөн тооны цикл ашигладаг боловч илүү их кодын санах ой ашигладаг. 16 оруулгатай хайлтын хүснэгтээс харгалзах тэмдгийг хайхад нэлээд удаан хугацаа шаардагдана.
Шуудангийн үйлчилгээ
Утасгүй M-автобусны техникийн үзүүлэлтүүд нь шуудангийн тээвэрлэгч эсвэл чиргүүлийн тусгай шаардлагыг тавьдаг. Бүх горимын хувьд хамгийн багадаа хоёр чип, дээд тал нь найман чип байна. FIFO-ийн хамгийн бага атомын нэгж нь нэг байт тул 8 чиптэй чиргүүлийг Mode S ба Mode R-д ашигладаг. Mode T шуудангийн багц нь багцын урт нь тэгш бол найман чип, пакетийн урт сондгой бол дөрвөн чип байна. Содгой багцын урттай дөрвөн чиптэй шуудангийн хайрцаг нь дор хаяж хоёр ээлжлэн чиптэй байх шаардлагыг хангасан.
Хүснэгт 7. Шуудангийн урт

Шуудангийн урт (чипс)
мин хамгийн их Хэрэгжилт чипийн дараалал
S горим 2 8 8 1010101
Т горим 2 8 4 (сонин) 101
8 (бүр) 1010101
R горим 2 8 8 1010101
Пакет зохицуулагч

Si443x дээрх пакет зохицуулагчийг хувьсах багцын өргөн эсвэл тогтмол багцын өргөн горимд ашиглаж болно. Хувьсах багцын өргөн горим нь синхрончлолын үгийн дараа багцын уртын байт болон нэмэлт толгойн байтыг шаарддаг. Хүлээн авах үед Радио хүчинтэй багцын төгсгөлийг тодорхойлохын тулд уртын байтыг ашиглана. Дамжуулах үед радио нь толгойн байтын дараа уртын талбарыг оруулна.
Утасгүй M-автобусны протоколын L талбарыг Si443x уртын талбарт ашиглах боломжгүй. Нэгдүгээрт, L талбар нь бодит багцын урт биш юм. Энэ нь CRC байт эсвэл кодчилолыг оруулаагүй холбоос давхаргын ачааллын байтуудын тоо юм. Хоёрдугаарт, L -талбар нь өөрөө Манчестерийн кодчилол эсвэл T горимын тоолуурын гуравны зургаагаас бусад кодчилолыг ашиглан кодлогдсон.
Уг хэрэгжилт нь пакет зохицуулагчийг тогтмол багцын өргөн горимд дамжуулах болон хүлээн авахдаа ашигладаг. Дамжуулах үед PHY давхарга нь дамжуулагч буфер дэх L талбарыг уншиж, шуудангийн илгээмжийг оруулаад кодлогдсон байтуудын тоог тооцоолно. Дамжуулах кодлогдсон байтуудын нийт тоог Пакетийн уртын бүртгэлд (0x3E) бичнэ.
Хүлээн авах үед эхний хоёр кодлогдсон байтыг тайлж, L талбарыг хүлээн авах буферт бичнэ. L талбар нь хүлээн авах кодлогдсон байтуудын тоог тооцоолоход хэрэглэгддэг. Дараа нь хүлээн авах кодлогдсон байтуудын тоог Пакетийн уртын бүртгэлд (0x3E) бичнэ. Шуудангийн илгээмжийг хаясан.
MCU нь L талбарын кодыг тайлж, кодлогдсон байтуудын тоог тооцоолж, хамгийн богино багцын уртыг хүлээн авахаас өмнө утгыг Пакетийн уртын бүртгэлд бичих ёстой. PHY давхаргын зөвшөөрөгдөх хамгийн богино L-талбар нь 9 бөгөөд кодлогдоогүй 12 байт байна. Энэ нь T Model-д 18 кодлогдсон байт өгдөг. Эхний хоёр байт нь аль хэдийн тайлагдсан байна. Тиймээс пакетийн уртын бүртгэлийг 16 кбит/с буюу 100 миллисекундээр 1.28 байт удаа шинэчлэх ёстой. 8051 MIPS хурдтай ажилладаг 20-ийн хувьд энэ нь асуудал биш юм.
Сондгой багцын урттай Mode T пакетуудад ашигладаг дөрвөн чиптэй шуудангийн илгээмжээс бусад тохиолдолд хүлээн авах байтын тоонд шуудангийн илгээмжийг оруулаагүй болно. Тиймээс хүлээн авагч нь T сондгой урттай пакетуудаас бусад тохиолдолд шуудангийн илгээмж шаарддаггүй. Энэ шуудангийн хаяг нь зөвхөн кодлогдсон байт бүхэл тоог өгөхөд л хэрэгтэй. Шуудангийн илгээмжийн агуулгыг үл тоомсорлодог; Тиймээс шуудангийн илгээмжийг дамжуулахгүй бол дөрвөн чип дуу чимээг хүлээн авч, үл тоомсорлох болно. Кодлогдсон байтуудын нийт тоо 255 (0xFF)-ээр хязгаарлагддаг тул хэрэгжилт нь өөр өөр горимуудын хамгийн их L талбарыг хязгаарладаг.
Хүснэгт 8. Пакетийн хэмжээ хязгаар

кодлогдсон тайлсан М-автобус
байт байт L-талбай
арванхоёрдугаар сар Hex арванхоёрдугаар сар Hex арванхоёрдугаар сар Hex
S горим 255 FF 127 7 Ф 110 6E
T горим (метр-бусад) 255 FF 169 A9 148 94
R горим 255 FF 127 7 Ф 110 6E

Эдгээр хязгаарлалтууд нь утасгүй тоолуурын ердийн ашиглалтаас хамаагүй дээгүүр байдаг. Батерейг хамгийн сайн ашиглахын тулд багцын уртыг бага байлгах хэрэгтэй.
Нэмж дурдахад хэрэглэгч хүлээн авах ёстой хамгийн их L талбарыг зааж өгч болно (USER_RX_MAX_L_FIELD). Энэ нь хүлээн авах буферийн шаардлагатай хэмжээг тодорхойлно (USER_RX_BUFFER_SIZE).
Хамгийн ихдээ 255 L талбарыг дэмжихийн тулд 290 байт хүлээн авах буфер ба хамгийн ихдээ 581 Манчестер кодлогдсон байт шаардлагатай. Пакет зохицуулагчийг идэвхгүй болгох шаардлагатай бөгөөд энэ тохиолдолд Пакетийн уртын бүртгэлийг ашиглах боломжгүй болно. Энэ нь боломжтой, гэхдээ боломжтой бол пакет зохицуулагчийг ашиглах нь илүү тохиромжтой.

FIFO хэрэглээ

Si4431 нь дамжуулах, хүлээн авахад 64 байт FIFO өгдөг. Кодлогдсон байтны тоо 255 тул кодлогдсон пакет бүхэлдээ 64 байт буферт багтахгүй байж болно.
Халдаах
Дамжуулах үед кодлогдсон байтуудын нийт тоог тооцоолно. Хэрэв шуудангийн илгээмжийг оруулаад кодлогдсон байтны нийт тоо 64 байтаас бага бол багцыг бүхэлд нь FIFO руу бичих ба зөвхөн илгээсэн пакетын тасалдлыг идэвхжүүлнэ. Ихэнх богино багцуудыг нэг FIFO шилжүүлгээр илгээнэ.
Хэрэв кодлогдсон байтын тоо 64-ээс их байвал пакетийг илгээхийн тулд олон FIFO дамжуулалт шаардлагатай болно. Эхний 64 байт нь FIFO-д бичигдсэн байдаг. Пакет илгээсэн болон TX FIFO Бараг хоосон тасалдлыг идэвхжүүлсэн. TX FIFO Бараг хоосон босго нь 16 байт (25%) байна. IRQ үйл явдал бүр дээр статус 2 бүртгэлийг уншина. Пакет илгээсэн битийг эхлээд шалгадаг бөгөөд хэрэв пакет бүрэн илгээгдээгүй бол дараагийн 48 байт кодлогдсон өгөгдлийг FIFO руу бичнэ. Энэ нь бүх кодлогдсон байт бичигдэж, Пакет илгээсэн тасалдал үүсэх хүртэл үргэлжилнэ.
1. Хүлээн авалт
Хүлээн авах үед эхлээд зөвхөн Үг синхрончлох тасалдлыг идэвхжүүлдэг. Синхрончлолын үгийг хүлээн авсны дараа синхрончлолын үгийн тасалдлыг идэвхгүй болгож, FIFO Almost Full тасалдлыг идэвхжүүлнэ. FIFO бараг бүрэн босгыг анх 2 байт болгож тохируулсан. Эхний FIFO Almost Full тасалдлыг хоёр урттай байт хэзээ хүлээн авсныг мэдэхэд ашигладаг. Уртыг хүлээн авсны дараа уртыг тайлж, кодлогдсон байтуудын тоог тооцоолно. RX FIFO бараг Бүрэн босгыг 48 байт болгож тохируулна. RX FIFO бараг дүүрсэн бөгөөд Хүчинтэй пакет тасалдлыг идэвхжүүлсэн. Дараагийн IRQ үйл явдал дээр статус 1 бүртгэлийг уншина. Эхлээд Valid Packet битийг шалгаад дараа нь FIFO Almost Full битийг шалгана. Зөвхөн RX FIFO Almost Full битийг тохируулсан бол дараагийн 48 байтыг FIFO-оос уншина. Хэрэв хүчинтэй пакет битийг тохируулсан бол багцын үлдсэн хэсгийг FIFO-оос уншина. MCU нь хэдэн байт уншсаныг бүртгэж, сүүлийн байтны дараа уншихаа зогсооно.

Мэдээллийн холболтын давхарга

Өгөгдлийн холбоосын давхаргын модуль нь 13757-4:2005 стандартад нийцсэн холбоосын давхаргыг хэрэгжүүлдэг. Өгөгдлийн холболтын давхарга (LINK) нь физик давхарга (PHY) болон хэрэглээний давхарга (AL) хоорондын интерфейсийг хангадаг.
Өгөгдлийн холбоосын давхарга нь дараах үүргийг гүйцэтгэдэг.

  • PHY болон AL хооронд өгөгдөл дамжуулах функцээр хангана
  • Гарч буй мессежүүдэд CRC-г үүсгэдэг
  • Ирж буй мессеж дэх CRC алдааг илрүүлдэг
  • Физик хаягжилтыг өгдөг
  • Хоёр чиглэлтэй холбооны горимуудын шилжүүлгийг хүлээн зөвшөөрдөг
  • Мэдээллийн битүүдийг жаазлах
  • Ирж буй мессежийн хүрээний алдааг илрүүлдэг
Холбоосын давхаргын хүрээ формат

EN 13757-4:2005 стандартад ашигласан Wireless M-Bus фрэймийн формат нь IEC3-3-60870-ын FT5 (Frame Type 2) хүрээний форматаас гаралтай. Хүрээ нь нэг буюу хэд хэдэн өгөгдлийн блокоос бүрдэнэ. Блок бүр нь 16 битийн CRC талбарыг агуулдаг. Эхний блок нь L талбар, С талбар, М талбар, А талбарыг багтаасан 12 байт тогтмол урттай блок юм.

  1. L-талбай
    L талбар нь Link давхаргын өгөгдлийн ачааллын урт юм. Үүнд L-талбар өөрөө болон CRC-ийн аль нэг байт ороогүй болно. Үүнд L талбар, С талбар, М талбар, А талбар орно. Эдгээр нь PHY ачааллын нэг хэсэг юм.
    Кодлогдсон байтуудын тоо 255 байтаар хязгаарлагддаг тул M-талбарын хамгийн их дэмжигдсэн утга нь Манчестерийн кодлогдсон өгөгдөлд 110 байт, T горимын Гурав-Зургаан-аас кодлогдсон өгөгдөлд 148 байт байна.
    Холболтын давхарга нь дамжуулалтын L талбарыг тооцоолох үүрэгтэй. Холбоос давхарга нь хүлээн авалт дээр L талбарыг ашиглана.
    L талбар нь PHY ачааллын урт эсвэл кодлогдсон байтуудын тоог заагаагүй болохыг анхаарна уу. Дамжуулах үед PHY нь PHY ачааллын урт болон кодлогдсон байтуудын тоог тооцоолно. Хүлээн авах үед PHY нь L талбарыг тайлж, тайлах байтны тоог тооцоолно.
  2. C-талбар
    C талбар нь фрэймийн хяналтын талбар юм. Энэ талбар нь фрэймийн төрлийг тодорхойлох бөгөөд холбоосын өгөгдөл солилцох үйлчилгээний командуудад ашиглагддаг. C талбар нь фрэймийн төрлийг заана - SEND, CONFIRM, QUEST, эсвэл RESPOND. SEND болон REQUEST фреймийн хувьд C талбар нь БАТЛАХ эсвэл RESPOND хүлээж байгаа эсэхийг заана.
    Үндсэн Link TX функцийг ашиглах үед C-ийн дурын утгыг ашиглаж болно. Link Service Primitives ашиглах үед C талбарыг EN 13757-4:2005 стандартын дагуу автоматаар бөглөнө.
  3. М-талбар
    M талбар нь үйлдвэрлэгчийн код юм. Үйлдвэрлэгчид дараахаас гурван үсэгтэй код авах хүсэлт гаргаж болно web хаяг: http://www.dlms.com/flag/INDEX.HTM Гурван үсэгтэй кодын тэмдэгт бүрийг таван битээр кодлодог. 5 битийн кодыг ASCII кодыг авч, 0x40 ("A") хасч авч болно. Гурван 5 бит кодыг нэгтгэж 15 бит болгодог. Хамгийн чухал бит нь тэг юм.
  4. А талбар
    Хаягийн талбар нь төхөөрөмж бүрийн өвөрмөц 6 байт хаяг юм. Өвөрмөц хаягийг үйлдвэрлэгч зааж өгөх ёстой. Төхөөрөмж бүр 6 байт өвөрмөц хаягтай байх нь үйлдвэрлэгч бүрийн үүрэг юм. Илгээх болон Хүсэлтийн хүрээний хаяг нь тоолуур эсвэл бусад төхөөрөмжийн өөрийн хаяг юм. Баталгаажуулж, хариу өгөх өгөгдлийн хүрээг үүсгэсэн төхөөрөмжийн хаягийг ашиглан илгээдэг.
  5. CI талбар
    CI талбар нь програмын толгой хэсэг бөгөөд програмын өгөгдлийн ачаалал дахь өгөгдлийн төрлийг тодорхойлдог. EN13757-4:2005 нь хязгаарлагдмал тооны утгыг зааж өгсөн байдаг бол Link Service Primitives нь ямар ч утгыг ашиглахыг зөвшөөрнө.
  6. ХХЗХ
    ХХЗХ нь EN13757-4:2005-д заасан байдаг.
    CRC олон гишүүнт нь:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    M-Bus CRC-ийг 16 байт блок бүрээр тооцдог болохыг анхаарна уу. Үүний үр дүнд 16 байт өгөгдөлд 18 байт дамжуулагдах шаардлагатай болдог.
Нэмэлт мэдээлэл

Холболтын давхаргын хэрэгжилтийн талаар нэмэлт мэдээллийг "AN452: Утасгүй M-Bus Stack программистуудын гарын авлага"-аас үзнэ үү.

Эрчим хүчний менежмент

Зураг 2-т тоолуурын цахилгааны удирдлагын хугацааг харуулавampT1 горимыг ашиглана.

Эрчим хүч хэмнэхийн тулд MCU аль болох унтах горимд байх ёстой. Энэ эксample, RTC ажиллаж байх үед, радио болор эхлүүлэхийг хүлээж байх үед, мөн FIFO-аас дамжуулах үед MCU унтаж байна. MCU нь Port Match-ийн сэрүүлэгт холбогдсон EZRadioPRO IRQ дохионоос сэрэх болно.
Нэг блокоос илүү урт мессеж дамжуулах үед MCU нь FIFO-г дүүргэхийн тулд сэрэх ёстой (FIFO бараг хоосон тасалдал дээр үндэслэн) дараа нь буцаж унтдаг.
MCU нь ADC-аас унших үед бага чадлын осциллятор эсвэл тэсрэлт горимын осциллятороос ажилладаг Сул зогсолтын горимд байх ёстой. ADC нь SAR цаг шаарддаг.
Ашиглаагүй үед EZRadioPRO нь SDN зүүг өндөрт чиглүүлэн Унтраах горимд байх ёстой. Энэ нь MCU-тай хатуу утастай холболт шаарддаг. EZ Radio Pro регистрүүд унтрах горимд хадгалагдаагүй; Тиймээс RTC интервал бүр дээр EZRadioPro-г эхлүүлдэг. Радиог эхлүүлэхэд 100 мкс-ээс бага хугацаа шаардагдах бөгөөд 400 нА хэмнэнэ. Үүний үр дүнд 10 секундын интервалд үндэслэн 10 мкЖ эрчим хүч хэмнэдэг.
EZRadioPRO болор нь POR-д ойролцоогоор 16 мс зарцуулдаг. Энэ нь ойролцоогоор найман блокийн ХХХ-ийг тооцоолоход хангалттай хугацаа юм. MCU нь болор тогтворжихоос өмнө бүх CRC-ийг гүйцэтгэвэл буцаж унтна. Хэрэв шифрлэлт шаардлагатай бол болор осциллятор дээр хүлээж байх үед үүнийг эхлүүлж болно.
MCU нь ихэнх ажилд бага чадлын осциллятор ашиглан 20 МГц давтамжтайгаар ажиллах ёстой. Тодорхой хугацаа шаардсан ажлууд нь унтах горимын оронд нарийвчлалын осциллятор болон идэвхгүй горимыг ашиглах ёстой. RTC нь ихэнх ажлуудад хангалттай нарийвчлалыг өгдөг. T2 тоолуурын эрчим хүчний удирдлагын цагийн хуваарь өмнөхample програмыг Зураг 3-т үзүүлэв.

Transceiver-ийн хэрэгжилтийг тоолуур сэрж, уншигч байхгүй үед ердийн тохиолдолд оновчтой болгох хэрэгтэй. ACK-ийн хамгийн бага/хамгийн их хугацаа нь хангалттай урт тул C8051F930 RTC-г ашиглаж, MCU-г унтах горимд оруулах боломжтой.
Унтах горимыг ашиглах шаардлагагүй үндсэн эсвэл USB-ээр ажилладаг уншигчдад зориулж бүтээх сонголтуудыг өгсөн. USB болон UART нь MCU-г тасалдуулахын тулд идэвхгүй горимыг унтахын оронд ашиглах болно.

SILICON LABS Утасгүй M-BUS програм хангамжийн хэрэгжилт AN451-1

Энгийн студи
MCU болон утасгүй хэрэгсэл, баримт бичиг, програм хангамж, эх кодын номын сан болон бусад зүйлд нэг товшилтоор хандах боломжтой. Windows-д ашиглах боломжтой,
Mac болон Linux!

IoT багц Чанартай
IoT багц
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
Чанартай
www.silabs.com/quality
Дэмжлэг ба олон нийт
community.silabs.com

Татгалзах
Silicon Labs нь Silicon Labs-ийн бүтээгдэхүүнийг ашиглаж байгаа болон ашиглахаар төлөвлөж буй систем болон программ хангамжийн хэрэгжүүлэгчдэд зориулсан бүх дагалдах төхөөрөмж, модулиудын хамгийн сүүлийн үеийн, үнэн зөв, гүнзгий баримт бичгийг хэрэглэгчдэд хүргэх зорилготой. Тэмдэглэлийн өгөгдөл, боломжтой модулиуд болон дагалдах төхөөрөмжүүд, санах ойн хэмжээ болон санах ойн хаягууд нь тодорхой төхөөрөмж тус бүрд хамаарах ба "Ердийн" параметрүүд нь өөр өөр програмуудад өөр өөр байж болно. Өргөдөл жишээлбэлampЭнд тайлбарласан хичээлүүд нь зөвхөн тайлбарлах зорилготой. Silicon Labs нь энд байгаа бүтээгдэхүүний мэдээлэл, техникийн үзүүлэлт, тайлбарт нэмэлт мэдэгдэлгүйгээр өөрчлөлт оруулах эрхтэй бөгөөд оруулсан мэдээллийн үнэн зөв, бүрэн байдлын талаар баталгаа өгөхгүй. Цахиур лаборатори нь энд өгөгдсөн мэдээллийн ашиглалтын үр дагаварт хариуцлага хүлээхгүй. Энэхүү баримт бичиг нь ямар нэгэн интеграл схемийг зохион бүтээх, үйлдвэрлэхэд олгогдсон зохиогчийн эрхийн лицензийг илэрхийлэхгүй. Бүтээгдэхүүнийг Silicon Labs-ийн тусгай бичгээр зөвшөөрөл авалгүйгээр Амьдралыг дэмжих системд ашиглахаар төлөвлөөгүй эсвэл зөвшөөрөгдөөгүй. “Амьдралыг дэмжих систем” гэдэг нь хүний ​​амь нас ба/эсвэл эрүүл мэндийг дэмжих, дэмжих зорилготой аливаа бүтээгдэхүүн, систем бөгөөд хэрэв энэ нь бүтэлгүйтвэл хүний ​​ноцтой гэмтэл, үхэлд хүргэж болзошгүй юм. Silicon Labs-ийн бүтээгдэхүүнүүд нь цэргийн зориулалтаар зориулагдаагүй эсвэл зөвшөөрөгдөөгүй. Цахиурын лабораторийн бүтээгдэхүүнийг ямар ч тохиолдолд үй олноор хөнөөх зэвсэг, түүний дотор цөмийн, биологийн, химийн зэвсэг эсвэл ийм зэвсгийг дамжуулах чадвартай пуужинд (гэхдээ үүгээр хязгаарлагдахгүй) ашиглахыг хориглоно.
Барааны тэмдгийн мэдээлэл
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® болон Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro лого болон тэдгээрийн хослолууд, "дэлхийн хамгийн эрчим хүчний ээлтэй микроконтроллерууд", Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® болон бусад нь Silicon Labs-ын худалдааны тэмдэг эсвэл бүртгэгдсэн худалдааны тэмдэг юм. ARM, CORTEX, Cortex-M3, эрхий хуруунууд нь ARM Holdings-ийн худалдааны тэмдэг эсвэл бүртгэгдсэн худалдааны тэмдэг юм. Keil бол ARM Limited компанийн бүртгэлтэй худалдааны тэмдэг юм. Энд дурдсан бусад бүх бүтээгдэхүүн эсвэл брэндийн нэр нь тус тусын эзэмшигчийн худалдааны тэмдэг юм.SILICON LABS лого

Silicon Laboratories Inc.
400 Баруун Сезар Чавес
Остин, TX 78701
АНУ
http://www.silabs.com

Баримт бичиг / нөөц

SILICON LABS Утасгүй M-BUS програм хангамжийн хэрэгжилт AN451 [pdf] Хэрэглэгчийн гарын авлага
SILICON LABS, C8051, MCU болон, EZRadioPRO, Wireless M-bus, Wireless, M-BUS, Програм хангамж, Хэрэгжилт, AN451

Лавлагаа

Сэтгэгдэл үлдээгээрэй

Таны имэйл хаягийг нийтлэхгүй. Шаардлагатай талбаруудыг тэмдэглэсэн *